* Use the callback body instead of response.body that may not be set
* Adds test to handle undefined responses
* Adds toJSON method to properly serialize HTTPResponse
* Use ES5 defineProperty to make keys enumerable
* removes body key from serialization
* Indent nits