Check that Content-Type is application/json

This is the original commit from the HMRC manuals API which disabled
ParamsParser - the other reasons given there will apply here soon, but
for now I've rewritten the comment to be more applicable to our current
situation:

    https://github.com/alphagov/hmrc-manuals-api/commit/61e4a4dbac267e20c16462ab8e27306d295a76d1
Introduce a put_json request helper for tests

This sets the Content-Type header to application/json and converts
a hash to JSON for the body, so that the tests themselves are much
cleaner.

This is also taken from the HMRC manuals API:

    https://github.com/alphagov/hmrc-manuals-api/blob/4f74b181a406424b954836465d2bac0f76edce60/spec/support/json_request_helpers.rb#L2-L9
Check that the client accepts JSON

We are only supporting JSON responses to PUT requests, so check
beforehand that the client will accept JSON and return 406 (Not
Acceptable) if it doesn't.
Merge pull request #9 from alphagov/check_headers

Check Content-Type and Accept headers