Allow configurable metadata service timeouts

The default has been changed to 1, which is now consistent with
boto and other AWS SDKs.
Allow metadata attempts to be retried

Note that this does not plumb anything into the session via
config vars.  I think that should be a separate pull request.
Merge branch 'iam-metadata-timeout' into develop

* iam-metadata-timeout:
  Allow metadata attempts to be retried
  Allow configurable metadata service timeouts
Update models to the latest version
Bumping version to 0.30.0
Merge branch 'release-0.30.0' into develop

* release-0.30.0:
  Bumping version to 0.30.0
  Update models to the latest version
Honor REQUESTS_CA_BUNDLE env var in Endpoint class

This allows users to set the path to a cert bundle.
The logic is:

* Any explicit value passed to get_endpoint() is used
* Otherwise use REQUESTS_CA_BUNDLE if the var exists in the env
* Otherwise, default to true.
Add verify arg to get_endpoint in Service object
Update elasticache model to the latest version

Summary of changes:

* REMOVED: Key removed in CreateCacheCluster.CacheNodeType: required
* REMOVED: Key removed in CreateCacheCluster.Engine: required
* REMOVED: Key removed in CreateCacheCluster.NumCacheNodes: required
* DOCS: DeleteReplicationGroup operation documentation has changed.
* ADD: New argument added to operation DeleteReplicationGroup: RetainPrimaryCluster
Merge branch 'honor-cacert-envar' into develop

* honor-cacert-envar:
  Add verify arg to get_endpoint in Service object
  Honor REQUESTS_CA_BUNDLE env var in Endpoint class
Merge branch 'update-elasticache-model' into develop

* update-elasticache-model:
  Update elasticache model to the latest version
Move module vars into session class vars
Rename env vars to session vars

There's already a concept of OS environment variables, so
renaming the session variable mapping from environment vars
to session vars makes things a little more clear.
Rename get_variable to get_config_variable

get_variable is aliased so this is s backwards compatible change.
Add support for per session config vars

You can use set_config_variable to set a config var
for a specific session instance.
Add session config vars for metadata retry/timeouts

In addition, num_retries has been mapped to num_attempts, as it's
easier to think about the total number of times vs. the first time
and the number of retries.
Add default param to get_config_variable
Fix elastictranscoder service

This fixes two issues to get elastictranscoder working:

* account for the `rest-json` service type in `get_response()`
* account for query strings coming from the url path in sigv4 signer

I've also added integration tests that verify we can talk to
the Elastic Transcoder service as expected.
Merge branch 'metadata-retry-config' into develop

* metadata-retry-config:
  Add default param to get_config_variable
  Add session config vars for metadata retry/timeouts
  Add support for per session config vars
  Rename get_variable to get_config_variable
  Rename env vars to session vars
  Move module vars into session class vars
Fixing an issue that came up while fixing https://github.com/aws/aws-cli/issues/593.