Adds Json as a form of TestResponse

Adds a `Json` `TestResponse` by looking at the `content-type` header. Keeps the body as a lazy `ByteString` for future `decode`ing. I considered `decode`ing the body immediately into a `Maybe Value` in order to add some `shouldBeEmptyObject` type predicates, but it didn't seem to add any real value versus letting the user `decode` directly into their expected `FromJSON` instance.

Defaults the anything without `content-type=application/json` to `Html`. I dunno [how far you want to take this](http://en.wikipedia.org/wiki/Internet_media_type#List_of_common_media_types), but at least adding a JSON type would be nice.