Add proper retry config for emr

Two issues:

* We need to use the proper endpoint prefix of "elasticmapreduce",
  not "emr".
* We need to use throttling_exception instead of the throttling
  rule for retry.
Merge branch 'creds-file' into develop

* creds-file:
  Remove config var refactoring
  Refactor config variable loading into separate module
  Let cred providers load config files
  Remove creds from session vars
  Refactored credentials to not depend on session
  Add shared credential provider
  Refactor config module to not depend on session
Change retry base for emr to be 2.1

Based on guidance from the EMR team.
Merge branch 'emr-retry-json' into develop

* emr-retry-json:
  Change retry base for emr to be 2.1
  Add proper retry config for emr
Add default values of metadata timeout/num_attempts

Fixes broken build, as None values were being passed through
to the fetcher class.
Fix bug for switching to s3v4
Add S3v4 presigner

Allows you to create presigned urls for S3.
Add a general sigv4 presigner

Refactor the s3 v4 signer to use the general sigv4 presigner
where possible.
Consolidate signing tests into a single test module

This corresponds to a single botocore module and puts
all the signing tests in a single test module, with the
exception of SigV4, which is separate because it has its
own data driven test suite, given from the AWS docs.
Add sigv4 presigned unit/integ tests