Index operational_field on fatality notices

It is displayed on the search results page
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).
Remove eager loading from rummager and add a test for resultset

We no longer load up the documents from the database so we do not need
the eager loading tests or code.

Also fix the stub on advanced_search to return a hash and add in a test
for #documents which ensures we get a Kaminari::PaginatableArray as the
result
Include topics on the result object

Using Classification as we merge TopicalEvents into the rummager
"topics" field
Fix statistical data sets feature

Indexing occurs on publication, so the association with document series
needs to exist before publication.
Merge pull request #791 from alphagov/55381888-speedup-filter-pages-2

https://www.pivotaltracker.com/story/show/55381888

Speed up document index page by getting edition data only from elastic search