For right now, I'm just working on getting this initial extraction working and passing the test suite before continuing on to the other refactoring.

We'll need to eventually have:

* `Henson::API::GitHubClient`
* `Henson::API::PuppetForgeClient`

These classes will then all inherit from `Henson::API::Client`, which will be an internal class mostly gutted from the ongoing work here to gain support for `request` and `handle` and the like.

From there, for persistent connection handle sanity, `Henson.api_client` will inevitably be replaced with `Henson.api_clients`, which will be a cache layer to make sure we only keep a single API client per type and per host. This will allow us to handle multiple sources of the same backend type elegantly and efficiently.