Allows the signature option of a client to be a string or a signature object

This pull request allows the "signature" option to be a valid signature version string (e.g., "v4", "v3https", "v2", "s3"). This makes it easier to override the default signature with a different signature by name.

/cc @jeremeamia