Add temporary credentials

This PR adds the low-level capability of fetching and refreshing temporary credentials.  Two new methods are added to the ``Session`` object:

* ``create_temporary_credentials`` is called to create a new set of temporary credentials.  You pass in information about the service, operation, and kwargs you want to call to actually fetch the credentials.  The call is made and the temporary credentials are cached locally.  All subsequent calls to operations will use the cached temporary credentials.  If the credentials are within 15 minutes of expiration, they will be refreshed automatically.

* ``delete_temporary_credentials`` is called to delete the locally cached temporary credentials.  Once the temporary credentials are deleted, the normal credential search path will be used to find the correct credentials to use for subsequent operations.

There will be a related PR in AWS CLI to add this capability as a new command.