Refactor HTTP access out of HostingService class.

This change adds a new `HostingServiceClient` class which handles the basic
details of HTTP and JSON communication with hosting service APIs. This is
primarily just extracting the functionality out of the `HostingService` class.
Individual `HostingService`s can override this class to add additional checking
(such as GitHub's checking of rate limit headers), or add higher-level API
functionality.

Testing done:
* Ran unit tests.
* Tested post-commit review request creation.

Reviewed at https://reviews.reviewboard.org/r/5691/