Removing EventEmitter dependency.

AWS.Request was previously extending EventEmitter, but this
proved to be limiting.  It was not possible to invoke listeners
asynchronously and sequentially.  It becomes an bigger issue when
the request needs to transition to the next state but needs to know
that all of the listeners (that may mutate the request) are complete.

The new implementation can provide a callback to listeners that is
called once copmlete (with optional error).  This should allow things
like asynchronously refreshing expired credentials from the
instance metadata service, asynchronous xml parsing, etc.