Merge branch 'release-1.5.6' into develop

* release-1.5.6:
  Bumping version to 1.5.6
  Simplify DelegationSetId format
  Update CHANGELOG with new service features
Add #986 to the changelog
Initial commit of assume role cred provider

This builds on the work of several existing
pull requests combining what I believe is
the combination of all the suggested changes
including:

* Use role_arn to trigger assume role behavior.
  Do not require an explicit session to be created
  and ended (#667).
* Cache the temporary credentials.  If the credentials
  are not expired then we should reuse them instead of
  making the assume role call every time
  (#656 and boto/botocore#226).

I think a strong case can be made to move this to botocore.
However, the file caching makes me somewhat hesitant to move
this into botocore (but I think the AssumeRoleProvider without
the caching could be added to botocore).  I'd like to evaluate this in
the future but for now, I don't think it's unreasonable to leave
this in the AWS CLI for the time being.  At any rate, this is
a straightforward and compatible move if we decide to do so.

Also, the ability to open a browser with the currently scoped
session has not been ported over.  I'd like to address that
in a separate pull request.
Remove commented out code
Merge branch 'assume-role-provider' into develop

* assume-role-provider:
  Remove commented out code
  Initial commit of assume role cred provider
Fix integ test failure

It's possible that a profile does not exist and therefore
the cred provider cannot be retrieved.  If this is the case
then we just shouldn't register the assume role provider.
Add support for MFA when assuming a role

Feedback from #990, this adds support for MFA when assuming a role.
To enable this, in addition to role_arn and source_profile, you can
specify an mfa_serial option in your config file::

    [profile foo]
    role_arn = ...
    source_profile = development
    mfa_serial = .....

This is the the mfa arn/device id.  If an mfa_serial is
provided then a user will be prompted for the token code when
the AssumeRole call happens.

As mentioned in the original PR, for now when the temporary
credentials expire, an exception will be raised if MFA is
required.  We can look into updating this in the future to support
reprompting the user.  This only affects the case where the
credentials expire within the duration of the AWS CLI process.
Aside from some of the ``aws s3 cp/sync`` commands, the AWS CLI
is generally a short lived process so this won't affect the
common usage scenarios.
Expose waiters in the CLI

Add a ``wait`` command to all services that have waiters. For each type of
waiter, a subcommand representing that waiter was added. For example, to wait
for an ec2 instance to reach the running state, the wait command would be
specified as ``aws ec2 wait instance-running``.

Conflicts:
	awscli/handlers.py
Update waiter code based on feedback
Update waiters to use the new get_waiter_model

This fixes an issue where previously we were creating a client
without specifying a region, which in certain cases would trigger
an error.  Now we only use the waiter model to generate the necessary
commands.

As part of thie change I went ahead and just switched the invoke
to just use the service/operation object.  This isn't ideal, but at the
same time, it's pretty clear that for the time being there's no way
to do this entirely with just clients.  Given that's the case, I don't
feel it's that imperative to use clients where possible.  When
we switch to clients, this module will need updates regardless.
It also simplified the code a little bit.
Fix formatting (pep8)
Merge branch 'add-waiter-models' into develop

* add-waiter-models:
  Fix formatting (pep8)
  Update waiters to use the new get_waiter_model
  Update waiter code based on feedback
  Expose waiters in the CLI
Merge branch 'assume-role-mfa' into develop

* assume-role-mfa:
  Add support for MFA when assuming a role
Add assumerole/waiters to the config file
Fix filter bug

S3 prefixes were not being taken into account when determining the root
directory.
Update changelog
Merge pull request #993 from kyleknap/filters

Fix filter bug
Bumping version to 1.6.0
Merge branch 'release-1.6.0'

* release-1.6.0:
  Bumping version to 1.6.0
  Update changelog
  Fix filter bug
  Add assumerole/waiters to the config file
  Fix formatting (pep8)
  Update waiters to use the new get_waiter_model
  Update waiter code based on feedback
  Expose waiters in the CLI
  Add support for MFA when assuming a role
  Fix integ test failure
  Remove commented out code
  Initial commit of assume role cred provider
  Add #986 to the changelog