Create a response consumer Closes #37

Previously the response was being generated by the toString method
on the `HttpResponse` object. That was just a bad practice of seperation
of concerns. Now the `HttpResponse` object is a pure data structure and
the creation of the actual response is handled by the newly created
`HttpResponseConsumer` object.