Add non-US bucket support

Previously, if a bucket from a non-US region was accessed, a failure
would occur.  Now, the wagon attempts to determine what endpoint the
bucket should be accessed at, and then uses that endpoint for all
future access.  In order to determine the endpoint of a bucket, you
must have provided credentials that are privileged enough to read the
metadata of that bucket.

Closes issue #4
Merge branch 'endpoint-support' into 4.x
Merge branch '4.x'