Introduce ResultSet adapter for results from rummager

The ResultSet presents data from Rummager in a form which matches the
existing model objects as far as possible. We load associated objects
(Organisation, DocumentSeries, etc) from the database.
Option to enable newrelic

Set ENABLE_NEWRELIC=1 to enable in dev mode
Refactor to remove intermediate decorator

the perpose of the SearchBlahDecorator was to wrap each document with a
particular decorator. I've made this the responsibility of
DocumentFilterPresenter, so the SearchBlahDecorator is not needed any
more.
Load real edition instances for atom feeds

The atom feeds rely on quite a few fields not available in the
elasticserach index at present. In particular they require the full html
version of the document body including inline attachments and images.

We decided to postpone addressing this for now, by just loading the real
edition instances for atom feeds.

Also changed AnnouncementsController to inherit from DocumentsController
which provides #load_editions_by_id
Adapt test to cope with non-editions

Previously these tests checked for the concrete edition instances, but
that's too specific. Instead we just check using edition ids.
Index document_series correctly in tests

Indexing occurs at publication time. If you create a
published_publication using the factory then it the indexing trigger
would fire at that moment, before it would be associated with the
document_series.

I think this worked previously because the controller was loading the
object instances from the database by ID, so it was getting the
persisted object rather than the value actually stored in the index.

To ensure that the document_series value is stored in the index, we need
to publish after setting up the whole object graph.

Also, add document_series to not_quite_as_fake_search

We need to tell it to handle this field. This is a bit non-DRY but hard
to sync up with the canonical definition (in rummager mappings).
Dry up EditionPresenterHelper
Handle urls in EditionPresenterHelper

We can't make #public_document_path work for a Result object and we can't
add a #link method to Edition, so we need to handle this discrepancy
here.
Handle nil operational_field

A FatalityNotice requires operational_field to be set, so it's
reasonable to assume that a FatalityNotice would have a value for
operational_field if the method is defined.

However, the Result object will define this method for all edition
types, even if they don't have operational_field. For those other
edition types the value will be empty. Therefore so we need to check
that it has a value as well as the method being defined.
Store dates as strings in NotQuiteAsFakeSearch

This is to mimic rummager behaviour more closely. Dates are returned as
string literals from rummager. This fixes some test failures due to
attempts to parse TimeWithZone (as though it were a string).