Refactor out HttpRequest and HttpResponse for HttpApi, along with the corresponding HttpRequestError and HttpResponseError (makes things more manageable, and gives apps more control over how to handle their error responses)
Documentation and a bit more refactoring for HttpResponse and HttpRequest
Test stubs for the new HttpRequest, HttpResponse, HttpRequestError and HttpResponseError
A bit more refactoring for HttpApi
Tests for HttpRequestError and HttpResponseError (with the relevant fixes)
Tests for HttpRequest
Add HttpResponse tests
Fix HttpApi and JsonApi after the HttpRequest and HttpResponse refactoring
Docstring fixes for http_api module
Pass the encoder function to HttpRequest on initialisation (and similarly for decoder and HttpResponse)
Catch and re-throw requests and response encode/decode errors in HttpRequest.encode()/HttpResponse.decode()
Merge branch 'feature/issue-59-include-data-and-status-code-when-throwing-an-error-in-httpapi' into develop