Abstract DocumentPresenter from CmaCasePresenter

Refactors the existing DocumentPresenter into an abstract presenter class to be used by CmaCasePresenter and new DocumentPresenter classes coming in future commits
Use AaibReportPresenter if document type is AAIB

Allow the controller to switch which presenter and schema is used based on the document_type from the content api. This requires govuk_content_api to have an update to the ArtefactPresenter to pass through values for firstly the document_type and secondly all the attributes required for an AaibReport
Test document metadata appears on the page

Rather than duplicating the cucumber features across the board instead we can test the presenters directly and check that the controller uses the correct presenter. This addition helps us to check whether metadata attributes are being visibly displayed in the browser.
Spec should say 'I should see..' not 'I should the..'
Make formats use underscores not hyphens
Legacy compatibility for 'specialist-document' format

This can be removed once documents have been republished, but for now lets provide backwards compatibility with old specialist-document' formats.
Friendly fallback if artefact.format is not known

If we don't understand what to do with the artefact format handed to us from the api, just render a plain base document without any metadata. In order to handle firstly allow the presenter to deal with a nil schema. Also lets provide some sensible defaults when the api response doesn't contain any headers so the view doesn't need to check for them before rendering.
Merge pull request #27 from alphagov/feature/displaying-aaib-reports

Feature/displaying aaib reports