Handle non-JSON bodies

This is a bit of a hack so that we don't try to parse HTML or plaintext
as JSON when we get back, e.g. a 404. Ideally, we should be looking at
the content type of the header and parsing or not based on that, but
that's for another pull request, for sure.
Merge branch 'keep_response_object_in_resource' into work-ahead