Add unified search endpoint.

Adds a /unified_search.json endpoint that will be used for the new
gov.uk search, returning one combined stream of results.

This uses a UnifiedSearchBuilder for constructing the elasticsearch
queries, a UnifiedSearchPresenter for formatting the result sets, and a
UnifiedSearcher for performing the search.
Call UnifiedSearchPresenter from UnifiedSearcher.

This encapsulates the details of converting the response from
elasticsearch to the output format more nicely, and is easier to write
tests for.
Minimal integration test of unified search
Unit tests for unified search

Adds unit tests for the UnifiedSearcher and for UnifiedSearchBuilder.
These show up a problem with sorting (it doesn't filter out documents
for which the sort field doesn't exist).
Don't return documents missing sort field.

When sorting, we want to exclude documents which are missing the sort
field, since it doesn't really make sense to put those at either the top
or bottom of the search results.  This will support the ordering wanted
by https://www.pivotaltracker.com/story/show/66950384.
Put hash parameter for UnifiedSearchPresenter last

Jordan points out that this is a loose convention, and makes it nicer to
call because the hash entries can be supplied when this is called
without needing to wrap them in {}.
Unit tests for UnifiedSearchPresenter
Keep metadata separate for UnifiedSearchPresenter

Instead of merging the metadata fields (eg, _score, _index) with the
rest of the fields for passing input to the UnifiedSearchPresenter, put
them all into a :_metadata member.  This avoids risk of them colliding
with other fields, and makes it easier to write tests that check all the
concrete fields have the correct values.
Integration test date sorting and optional fields.
Rename multi_index_helper to multi_index_test.

This is in line with the convention that the filename should match the
name of the class defined in it.  The file will be included when tests
are run, which may waste a little time in test runs, but on the other
hand if a developer in future adds a test to the file it won't silently
fail to be run.
Cleaner parsing of filter parameters

Use a regex and assignment in the if statement to avoid having to
do a substring calculation with a magic number 7 to remove the "filter_"
prefix.