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.
It actually does. Take a look at `HTTPKeysAPI.SetAPIPrefix`. I wasn't able to come up with a cleaner way to accomplish it the goal of being able to override the API endpoint prefix than that. It's used by the discovery code.