### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

config.py's VALID_REGIONS only uses the default boto3 argument to find available regions. This means that regions from other partitions besides `aws` are not validated. 

When trying to list SNS Topics I get the error:

`An error occurred (InvalidParameter) when calling the ListTopics operation: Invalid region specified in "Authorization" header: "us-gov-west-1"`

I believe this is because VALID_REGIONS is set to use the default boto3 `get_available_regions()` parameter for `partition_name`, which is only 'aws'

https://github.com/localstack/localstack/blob/5784742b6f202133de11ef19544dd53c11c126e1/localstack/config.py#L454

https://github.com/boto/boto3/blob/master/boto3/session.py#L159-L162



### Expected Behavior

Non-default partition regions are also acknowledged as valid regions, and an error is not thrown.

VALID_REGIONS is set to aggregate regions from all available partitions.

### How are you starting LocalStack?

Custom (please describe below)

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    Running through a kubernetes deployment, using the image localstack: 0.12.17

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

```
# using boto3 locally
sns_client: boto3.client = boto3.client("sns", endpoint_url=AWS_URL)
topics = sns_client.list_topics()
```

`An error occurred (InvalidParameter) when calling the ListTopics operation: Invalid region specified in "Authorization" header: "us-gov-west-1"`

### Environment

```markdown
- LocalStack Docker image: 0.12.17
- Kubernetes
- Running on govcloud
```


### Anything else?

Current workaround:

setting `USE_SINGLE_REGION=true` and `AWS_DEFAULT_REGION=us-east-1` successfully mitigates this problem, and causes no error to the thrown when listing topics.
if TMP_FOLDER.startswith("/var/folders/") and os.path.exists("/private%s" % TMP_FOLDER):
    TMP_FOLDER = "/private%s" % TMP_FOLDER
HOST_TMP_FOLDER = os.environ.get("HOST_TMP_FOLDER", TMP_FOLDER)
LS_LOG = eval_log_type("LS_LOG")
DEBUG = is_env_true("DEBUG") or LS_LOG == "trace"
DEVELOP = is_env_true("DEVELOP")
DEVELOP_PORT = int(os.environ.get("DEVELOP_PORT", "").strip() or DEFAULT_DEVELOP_PORT)
WAIT_FOR_DEBUGGER = is_env_true("WAIT_FOR_DEBUGGER")
USE_SSL = is_env_true("USE_SSL")
USE_SINGLE_REGION = is_env_true("USE_SINGLE_REGION")
TF_COMPAT_MODE = is_env_true("TF_COMPAT_MODE")
DEFAULT_ENCODING = "utf-8"
DOCKER_SOCK = os.environ.get("DOCKER_SOCK", "").strip() or "/var/run/docker.sock"
DOCKER_FLAGS = os.environ.get("DOCKER_FLAGS", "").strip()
DOCKER_CMD = os.environ.get("DOCKER_CMD", "").strip() or "docker"
LEGACY_DOCKER_CLIENT = is_env_true("LEGACY_DOCKER_CLIENT")
FORWARD_EDGE_INMEM = True
EDGE_BIND_HOST = os.environ.get("EDGE_BIND_HOST", "").strip() or "127.0.0.1"
EDGE_PORT = int(os.environ.get("EDGE_PORT") or 0) or DEFAULT_PORT_EDGE
EDGE_PORT_HTTP = int(os.environ.get("EDGE_PORT_HTTP") or 0)
EDGE_FORWARD_URL = os.environ.get("EDGE_FORWARD_URL", "").strip()
DOCKER_BRIDGE_IP = os.environ.get("DOCKER_BRIDGE_IP", "").strip()
ENABLE_CONFIG_UPDATES = is_env_true("ENABLE_CONFIG_UPDATES")
DISABLE_CORS_CHECKS = is_env_true("DISABLE_CORS_CHECKS")
DISABLE_CUSTOM_CORS_S3 = is_env_true("DISABLE_CUSTOM_CORS_S3")
DISABLE_CUSTOM_CORS_APIGATEWAY = is_env_true("DISABLE_CUSTOM_CORS_APIGATEWAY")
EXTRA_CORS_ALLOWED_HEADERS = os.environ.get("EXTRA_CORS_ALLOWED_HEADERS", "").strip()
EXTRA_CORS_EXPOSE_HEADERS = os.environ.get("EXTRA_CORS_EXPOSE_HEADERS", "").strip()
EXTRA_CORS_ALLOWED_ORIGINS = os.environ.get("EXTRA_CORS_ALLOWED_ORIGINS", "").strip()
DISABLE_EVENTS = is_env_true("DISABLE_EVENTS")