Create SchemaConfig object

We want to merge together parts of various different files to build the
elasticsearch schema config. This class provides the same format the app
is currently expecting and allows us to add extra logic into generation
of the config.
Extract synonyms and stems to separate files
Split doctype mappings for default index

Mappings for the default index now contain a merged version of the core
doctype properties (from `config/schema/default/core.json`) combined
with each individual doctype's properties. This is generated from each
file present in the `config/schema/default/doctypes` directory.
Add schema for cma_case doctype format
Strip the details key from doctype properties

The details key contains information useful for other applications but
not intended for elasticsearch. There will be future work to expose this
information in a useful way.
Make delete action handle a _type parameter

Makes Index#delete take type and id instead of just a link.

This allows us to delete a document with a type other than edition,
without having to add special cases to the `link_to_type_and_id` method.
Add updated_at field to core doctype schema

To be able to support finders from rummager we need to be able to sort
documents by their updated_at timestamp. We don't ever want to search on
the field, just sort on it, so index it but don't include it in `_all`.

Note that whilst this field is common across all doctypes, it's not
mandatory. Until everything is using the new content store some things
will have null updated_at timestamps.
Add opened_at and closed_at fields to cma cases

These fields are shown in the search results in finders frontend, but
aren't used for searching or filtering so they don't need to be indexed.
Merge pull request #250 from alphagov/split-schema-config

Split schema config to support multiple doctypes