Add RequestSigner class.

This introduces a new `RequestSigner` class to handle the signing of
requests. It fires the following events:

* `choose-signer.service.operation`: Allow overriding signature version
* `before-sign.service.operation`: Allow mutating request before signing

It is currently not used by anything, but is included as part of #414.
Update copyright year [ci skip]
Merge pull request #418 from danielgtaylor/signers

Add RequestSigner class.