TODO: this class is actually tied to one region, because most of the paths make use of
the regioninfo part of location when building requests. The only reason it works for
multi-region requests (e.g. batch) is that they happen to not use the region parts.
This could be done cleaner (e.g. having a generic parameter and 2 derived classes,
RegionCallable and actual RegionServerCallable with ServerName.