Merge branch 'release-0.73.0' into develop

* release-0.73.0:
  Bumping version to 0.73.0
  Update s3 service model
  Add Amazon Lambda serivce
Move retry event registration to service-data-created

Makes it (almost) possbile to support retries in the client
interface as well.
Add support for testing retry behavior
Fix issue when resigning requests

More fallout from reusing the same request object to resign
a request.  Before setting a value for a header, we need to first
check if the key exists and delete it first, otherwise it's an
append, not a replace, which will cause signing errors.

Though not strictly required for some signers, I think it's important
to be consistent and just state that before setting a header value,
we should delete it first if it exists.
Dont use DNS style addressing for GetBucketLocation

This bypasses an issue when you try to get bucket location
for a bucket in eu-central-1.  You now do not need a region
specified.
Add assertion to unit test for retry handler
Merge branch 'verify-retries' into develop

* verify-retries:
  Add assertion to unit test for retry handler
  Fix issue when resigning requests
  Add support for testing retry behavior
  Move retry event registration to service-data-created
Fix up test to use client objects in test fixtures
Merge branch 'no-dns-bucket-location' into develop

* no-dns-bucket-location:
  Fix up test to use client objects in test fixtures
  Dont use DNS style addressing for GetBucketLocation

Conflicts:
	tests/unit/test_handlers.py

Closes #380
Restore back-compat for timestamp input formats

While we want to encourage users to provide the appropriate
timezone info, this commit adds back the previous behavior, which
was to serialize the request assuming the user meant UTC.  I double
checked, and in prior versions, we weren't sending any tzinfo at all,
whereas now, we're at least explicitly specifying the UTC suffix if
none is provided.

Fixes aws/aws-cli#982
Merge branch 'naive-datetime-fix' into develop

* naive-datetime-fix:
  Restore back-compat for timestamp input formats
Add back support for sigv4 overrides

This allows you to change the signature version used when
signing requests for a particular service.

This isn't strictly needed to communicate with various endpoints,
any region specific signature versions are captured in _endpoints.json.
However, with S3 we sometimes need to switch to sigv4 even if it
otherwise wouldn't be required.
Fix SSE key handling for S3 with py3 byte keys

There was an issue where if a non-str object (i.e byte/bytearray)
was provided, then the param validation in botocore would fail
the type checks because the SSE keys are modeled as a string.
While the long term fix is to switch this to a blob type, to
fix this issue, the customization is moved to before-parameter-build.
In this way we can convert the params before they hit the serializer
and validator and ensure that our base64/md5 converted values are
strings such that they pass the type check validation.

To ensure we don't have any issues I've also added integration tests
for this.
Merge branch 'sigv4-switch' into develop

* sigv4-switch:
  Add back support for sigv4 overrides
Fix failing s3v4 integ test

I wasn't enabling sigv4 properly.  I now do this by creating
a temp config file and pointing the botocore session at this
config file.
Merge branch 'fix-sse-py3' into develop

* fix-sse-py3:
  Fix SSE key handling for S3 with py3 byte keys

Conflicts:
	tests/integration/test_s3.py

Merges #383.
Fix conversion error for EMR waiters

Found by someboredkiddo
Introduced in 23e042ff8716003ee53d62698668a95fe318c4b8

Closes #378
Fixes aws/aws-cli#1007
Merge branch 'emr-waiter-config-2' into develop

* emr-waiter-config-2:
  Fix conversion error for EMR waiters
Allow for response parsing behavior to be customized

This adds a ResponseParserFactory, which also has a hook
that allows a user to specify default parsing behavior
for blob and datetime types.

This can then be plumbed through to the session such that
other libraries (like the AWS CLI can change the response parsing
behavior).
Plumb through the response parser factory class