Generalise publishing for all document types

* Core attributes remain first class (slug, title, summary, body)
* All other attributes are added to 'details' field
* Other attributes are selected from the finder schema
Legacy publishing adapter to ease transition

The new generalised publishing set up puts all document attributes beyond title,
body, summary, slug in a details hash field.

This adapter flattens and duplicates the data export such that it will work
across the transition period.
Merge pull request #141 from alphagov/generalise-document-publishing

Generalise publishing for all document types
Unset the document_id field on PanopticonMappings

We switched from document_id to resource_id and resource_type, so we no
longer use this information, but ~105 PanopticonMappings still have a
document_id attribute.

Nuke it from orbit.
Merge pull request #149 from alphagov/remove_document_id_legacy_field

Unset the document_id field on PanopticonMappings
Date format validation for CMA and AAIB reports

Custom validator checks dates are parsable by Ruby Date library and of
form YYYY-MM-DD.
Merge pull request #152 from alphagov/validate-dates

Date format validation for CMA and AAIB reports
Redirect /specialist-documents to /cma-cases

Permanently redirect old urls to specialist-documents to /cma-case
Merge pull request #150 from alphagov/redirect-specialist-documents-to-cma-cases

Redirect /specialist-documents to /cma-cases
Publishing script republishes CMA cases correctly.

To prepare for republishing multiple types of document (other than just
specialist documents) we needed to fix the republishing script to both
operate without errors and to correctly notify the right set of
observers.

The eventual aim is to provide a two-level array of repositories and
the listeners that should be notified which will then perform
republishing for all types of documents.
Removed more unecessary code related to SpecialistDocument#published_version

Rename exposed_edition back to latest_edition
Merge pull request #151 from alphagov/republishing_script_fixes

Publishing script republishes CMA cases correctly.
Index CMA cases in Rummager on publish

Also remove them from Rummager when they're withdrawn.
Remove dependency on SpecialistDocumentAttachmentProcessor
Add spec for CmaCaseIndexableFormatter
Stub Rummager requests in cukes
Assert Rummager API is called in cukes

Define a `rummager_api` in the wiring so that we can use RSpec to spy on
the method calls it receives.