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