Per-index mappings

Allow each elastic search index to have their own mappings. The 'mappings' in elasticsearch define the fields and field types recognised by a search index.

The motivation for this is to support additional fields in the `government` index so that we can use elasticsearch for our filter pages.

With James Stewart's agreement, we have removed the Solr support from rummager. It was no longer used and given that elasticsearch is working fine, it seems unlikely that we'll switch back. Removing the Solr support means that the subsequent tidy ups/refactorings were easier.

The second substantial change in this pull request is to refactor the Document object (a value object representing a document in the search index). Document has been made aware of which index it's associated with, so that it can know which mappings apply to it, and therefore which fields are allowed. Document has also been changed to use method_missing, rather than defining `attr_accessor`. The use of `attr_accessor` defined these accessors on the class level meaning that all Document instances would have the methods irrespective of which index the particular instance was associated with.