New class for cleaning document filter parameters

We have been getting random requests where filter parameters are being
specified as incorrect types. For example:

  {
    "action" => "index",
    "controller" => "publications",
    "departments" => "[\"department-of-energy-climate-change\"]",
    "locale" => "en",
    "page" => {
      "&#36;acunetix" => "1"
    },
    "publication_type" => "transparency-data"
  }

This new class returns a clean set of parameters that can be used by
the various search backends to filter documents.

It incorporates the correcting of array parameters that become
malformed when passed through the Facebook referrer from here:
https://github.com/alphagov/whitehall/blob/858d4d789cbdd0e9bd45e0cc47f70c0e54f7d331/app/controllers/application_controller.rb#L75
Wire in Whitehall::DocumentFilter::CleanedParams

Note that we no longer need to set a default page number as this is
now done in Whitehall::DocumentFilter::Filter.

This also removes the controller tests that were testing whether
unpermitted parameter exceptions are being raised as we no longer
raise them in production anyway.
Cleanup unused code.

All the behaviour of these methods is now encapsulated in
Whitehall::DocumentFilter::CleanedParams and in
`ConsultationController`s case, calling `clean_search_filter_params`
is redundant anyway. Note that there will be a slight change in
behaviour: previously, any scaler params that were incorrectly passed
in as an array (e.g. page: []) are now dropped instead of taking the
first value of the array as the actual value. We don't generate urls
like so it doesn't seem reasonable that we should guess as to what
they should be. As long as we don't blow up when they are passed in,
all should be good.
Correct typo
Expose unpermitted param keys in CleanedParams

This allows us to introspect the parameters that we are rejecting.
Notify on unpermitted params in document filters

This allows us to keep an eye on requests with unpermitted params
without 500-ing at the user. Once we are satisfied that we are not
incorrectly rejecting legitimate parameters in document filter
requests, we can revert this commit to reduce exception noise due to
script kidies sending strange requests.
Merge pull request #1342 from alphagov/sanitize-document-filter-params

Sanitize document filter params

This adds more thorough whitelisting and cleaning of document filter params to reduce the number of exceptions raised by script kidies sending requests with strange parameters. It uses strong parameters to filter out unwanted and incorrectly specified document filter params and encapsulates everything inside a new class: Whitehall:DocumentFilter::CleanedParams.

Tracker: https://www.pivotaltracker.com/story/show/67544398