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/
Fix a bug where the body wasn't included in HTTP POSTs

This snuck in during some of the hostingsvcs refactoring. Trivial fix.
Merge branch 'release-2.0.x'
Fix a handful of pyflakes errors.

A few errors have snuck in over the past couple months. In the admin widgets,
the widget_select method had a couple unused variables. In the diffviewer
tests, a merge caused us to have two copies of the FileDiffMigrationTests (I've
kept the longer one). Finally, in the extensions tests, we were assigning a
hook to a variable which we didn't need.

Testing done:
- Ran pyflakes.
- Ran unit tests.