Add instance metadata retry config values to session

This adds two new (config file only) options:

* metadata_service_timeout: The number of seconds until we should time out a request to the metadata service.
* metadata_service_num_attempts:  The total number of attempts to make to the metadata service.

These options match what's in boto.

This PR also includes an enhancement to the session class for per-session config variable overrides.  This is useful for testing, but I think it's also useful as a general feature (different session instances can explicitly set config values).  In order for this to make the most sense, I also moved the module vars for the mapping of session variables into the session class itself.

This is the other half of https://github.com/boto/botocore/pull/202