Raise an ArgumentError if required params missing

Until now, we've been returning empty resultset. There are two problems with
this:
  * for `search` it assumed the response was array, but this is being changed
  * for `advanced_search` it assumed the response was array, but it is always hash
  * it puts unnecessary knowledge of rummager into this gem

Alternatives to this change:
  * pass it to rummager and let it decide what to do (more network IO)
  * raise a custom error class (maybe inheriting from ArgumentError)
Refine JSON parsing of body on HTTP error.

The message of an exception is defined as a string.  This was JSON
parsing the body, and passing the hash to the exception which called
to_s on it.  The result wasn't particularly useful.

This now stores the parsed JSON data in an error_details attribute on
the exception, and puts the raw http_body in the message.
Fix delete_json to actually call do_json_request.

This makes it consistent with put_json, post_json, and is the expected
behaviour given the method name.
Add router API client
Change route delete to use query params
Fix NameError when requiring any adapter outside Bundler

Fix NameError occuring when using extend Forwardable outside Bundler
Merge pull request #86 from rgarner/fix-name-error

Fix NameError when requiring any adapter outside Bundler
Merge pull request #85 from alphagov/router_api

Client for router API
Update to version 7.14.0

Adds support for the Router API.
add transaction done details
rename endpoints for consistency
simplify example in transaction feedback spec
Merge pull request #87 from alphagov/add_new_transaction-done_form

Add endpoint for transaction_feedback
Get a single need by its ID; add some helpers.
Add a method to update a need.
Bump version to 7.15.0
Merge pull request #88 from alphagov/get-update-need

Get and update needs
Bump version to 7.16.0
Update need ID key to reflect usage in the API.
Merge pull request #89 from alphagov/fix-need-id-key

Update need ID key to reflect usage in the API