Request signer and endpoint share client event emitter.

This change makes the request signer and endpoint share the client's
event emitter instead of that of the session. It updates the client
constructor to make its own endpoint creator and updates the
tests accordingly. This simplifies the logic in the session slightly.