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' into develop

* release-0.21.0:
  Bumping version to 0.21.0
Update direct connect test with latest API
Don't look at config file for region service tests

Otherwise these tests will fail if you have a region configured
in your config file.
Merge branch 'region-unit-test' into develop

* region-unit-test:
  Don't look at config file for region service tests
Expose result_keys on PageIterator object

This was expose on the Paginator object, but also needs to be
exposed through the PageIterator object.

Fixes #442.
Merge branch 'expose-result-keys-page-iter' into develop

* expose-result-keys-page-iter:
  Expose result_keys on PageIterator object
Update cloudfront to 2013-09-27 API version

Will need to update translate.py to fix this.
Bumping version to 0.22.0
Merge branch 'release-0.22.0' into develop

* release-0.22.0:
  Bumping version to 0.22.0
Remove trailing whitespace
Apply operation renames before pagination configs

This allows you to refer to operations by their transformed names
instead of their names from the model.

This was specifically for cloudfront, where we strip off the API version
from the operation names, but want to apply the same pagination configs
defined in cloudfront.extra.json.  Otherwise we have to update the
pagination configs every time we update the model.
Update cloudfront to the 2013-09-27 API version
Update cloudfront xml tests with new xmlns matching API version

Fixes the failing tests.
Merge branch 'update-cloudfront-model-2013-09-27' into develop

* update-cloudfront-model-2013-09-27:
  Update cloudfront xml tests with new xmlns matching API version
  Update cloudfront to the 2013-09-27 API version
  Apply operation renames before pagination configs
  Remove trailing whitespace
  Update cloudfront to 2013-09-27 API version