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``.

With the CLI being in a weird transition state, there are some areas that I would like to improve on, but I believe changes to both the client interface and switching the clidriver over to clients need to be made first. I will point out these areas in the code. Let me know if you have any suggestions. Feedback on the places I point out would be very much welcomed.

cc @jamesls @danielgtaylor 
Doesn't this mean that the `building-command-table` event may have different arguments based on who fires the event?  If so, I think this is something we should try to avoid if possible and treat the event arguments as part of the "signature" of the event.

That being said, nothing immediately comes to mind for a better solution.  I'd need to think about it for a bit.  Maybe there's some way we can tag a service operation object with some attribute that tells us that it's associated with an AWS service, and what that name of the service is.  Just wanted to pass the feedback along in case you had any ideas.