Improve parity of client interface

This brings the client objects closer in parity to the Service/Operation objects.  Specifically:

* Allow acces/secret key and session_token to be provided to the create_client calls
* Emit the same events as the Operation.call() method


In order to emit the same events, this also meant that the kwargs for each emitted event had to be the same between the client interface and the other interface.  This did require some slight changes to some of the kwargs, and will subsequently require a change to the AWS CLI handlers as well (which I'll send once this PR is through).

cc @kyleknap @danielgtaylor 
You should create the bucket in the ``setUp()`` and then take it down in a ``tearDown()`` to ensure a  removal of bucket if test fails