Don't try to decode error responses as JSON unless Content-Type matches /json/
Make sure Model & Record classes can handle unknown keys

Also make sure that ->raw method returns input exactly as passed to the
constructor.
There's no good reason to pass a "raw" param to the model constructor
Call ->decoded_content on HTTP::Response objects

We want to decode things like gzipped content and it seems to work fine with
UTF-8 content too.