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 
Unfortunately not that simple.  I would argue that this code belongs in the test method, it's not really related to test fixture setup/teardown which is what those methods are really intended for.

Also, note that these are _versioned_ buckets.  You can't delete the bucket without deleting objects and versions in the bucket.