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
We are creating a timestamp in the SigV4Auth class but this causes problems if you hold onto an endpoint for more than five minutes or so.  The timestamp expires and the signature is rejected.  We need to create a new timestamp each time add_auth is called.  But we also need a way to pass in a timestamp to use for the unit tests.  This fixes #149.
Just mock datetime.datetime.now() in the test generator rather than pushing into the auth class itself.
Resolving merge conflicts.
Fix merge.