Use endpoint heuristics for configuring regions

This switches the region configuration from the fixed list of regions into the endpoint heuristics configuration file.

The changes to the existing tests shows the change in behavior, but the only things we lose are:

* being able to validate a region as being valid (previously a region name of "foobar" would raise an exception
* being able to tell what regions a service is in, so we can raise an exception saying the service is not available in the region

There's going to also be a corresponding change to the CLI with updates, which will depend on this PR in order to change.

cc @danielgtaylor