Merge branch 'release-0.20.0' into develop

* release-0.20.0:
  Bumping version to 0.20.0
Specifying endpoint_url should not require metadata dict

If a service has not metadata dict that contains
regions/endpoint/protocol info, we should still be able to
construct endpoints by passing endpoint_url.  I've also
updated the code to not require region_name unless it's a sigv4
service (which is the only reason we need to require a region name
if we're given an explicit endpoint_url).

With this commit, we can consume the unprocessed model as it
exists in services/*.json.
Add test that verifies a region is required with no endpoint_url
Merge branch 'regions-not-required' into develop

* regions-not-required:
  Add test that verifies a region is required with no endpoint_url
  Specifying endpoint_url should not require metadata dict
Update direct connect model with latest changes
Bumping version to 0.21.0
Merge branch 'release-0.21.0'

* release-0.21.0:
  Bumping version to 0.21.0
  Update direct connect model with latest changes
  Add test that verifies a region is required with no endpoint_url
  Specifying endpoint_url should not require metadata dict