Break apart KeysAPI

This is preparing for adding bindings for the Members API. As soon as the Members API is introduced, it needs to use a lot of the HTTP-specific logic that is contained in the current httpClient object. I've renamed the Client interface to KeysAPI (think /v2/keys operations) and separated the HTTP logic into a simpler `httpClient` object. The soon-to-be-introduced `MembersAPI` should be able to take advantage of the `httpClient` but not have to worry about how the key-value store API does its business.
I can only do that if I `defer` the call to `cancel()` above. Are you suggesting I do that as well?