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.