Key#==(other)
HttpSignatures::Context with #signer(key_id) method.

Used to store credentials / settings in a central location in your app.
For example in a Rails initializer:

```rb
require "http_signatures/context"

$private_data_signing = HttpSignatures::Context.new(
  keys: {"hello" => "world"},
  algorithm: HttpSignatures::Algorithm::Null,
  headers: %w{(request-target) date content-length},
)
```

And then in application code elsewhere:

```rb
$private_data_signing.signer("hello").sign(message)
```
Signature includes headers. Headers are mandatory.

The spec[1] says headers may be omitted from the parameters, which is
equivalent to just "date". I see no reason for this implementation to
generate SignatureParameters without the headers specified.

[1]: http://tools.ietf.org/html/draft-cavage-http-signatures-03
signer_spec demonstrates (request-target) usage.