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