Add government_search_index_path method

We need to know both the search index name and path, so refactor to
introduce both these methods and also clarify the meaning of each. The
implementation was mainly using the 'path' although the method name used
was 'name'.
Use explicit list of non-statements

It was allowing types such as ImportedAwaitingType to appear.
Index additional fields from editions

In order to support filtering we need to add additional fields to the
the elastic search index, such as policies, topics, ministers, id etc.

Rummageable has hard-coded validation of the allowed fields so we have
monkey-patched rummageable to disable the validation. It would be better
to update Rummageable to make it more flexible, or maybe to remove the
validation altogether.

We've added a more thorough unit test for the Searchable mixin.
Rename DocumentFilter to DocumentFilter::Mysql

this is a preparatory step towards introducting an additional
ElasticSearch implementation of the filter.
Move filter UI related methods to helper

These methods will be used on both the elastic search and mysql version
of the form. They make more sense as helpers, as they just fetch data
for populating select boxes etc.
Adding DocumentFilter::ElaticSearch for publications

This implements an alternative searching and filtering backend for
elastic search.

To use this all the documents need to have been reindexed by rummager
and you need to supply an extra url parameter `use_elastic_search`

There are no tests because this is a prototype. In the production
implementation we intend to use Rummager rather than interfacing
directly with elasticsearch using Tire.
Fix edition unit tests

We don't need to be so explicit about testing the output of search_index
as it's tested elsewhere (in SearchableTest).