Generalise Attachment services

With the introduction of other types of documents, attachment services
need to be generalised. This involved removing the call to
specialist_document_id and allowing the document_id to instead be passed
in.
Adding services for AAIB report attachments
Allowing users to attach files to AAIB Reports

This commit adds an AAIB Reports Attachments controller and uses the
same views, with the only change being paths for partials and a switch
for the breadcrumbs in the attachment pages.

This also refactors out some steps to be a bit more generic and adds a
cucumber test for the AAIb Reports Attachments workflow.
Merge pull request #153 from alphagov/attachments-for-other-document-types

Attachments for other document types
Add gds_editor role

GDS Editors are able to see documents of all formats without belonging
to the owning organisation.
Merge pull request #156 from alphagov/add-gds-editor-role

Add gds_editor role
Refactor republish documents script and add tests

* Rerender => Republish
* Extract dependency injection to the script level, removing the need to
  inject the wiring into the DocumentRepublisher.
* Rewrite cuke to add a test around the DocumentRepublisher.
* Rewrite seed_cases method in the tests to use the apps service layer
  rather than interacting with the models directly.
* Add method to panopticon helpers to clear the received messages s.t.
  we can ensure a republish happened rather than risk picking up the
  messages from doc creation.
Script to fix inconsistent edition states

Tests live in the script because I don't want them in the test suite.

Should we care about testing this particular test then the test are easily
visible and deletable.
Merge pull request #155 from alphagov/fix-inconsistent-edition-states

Script to fix inconsistent edition states
Merge pull request #157 from alphagov/republishing_script_refactor_with_cuke

Refactor republish documents script and add tests
Add attachment to specialist-publisher
Merge pull request #158 from alphagov/attachment_in_sp_from_content_models

Add attachment to specialist-publisher
Give Document formatters specific "kind"

Instead of being generic about how we register documents with panopticon give them an explicit "kind" which is stored with the PanopticonMapping as resource_type. In order to find these again we will need to change the PanopticonMapping#documents scope to pull all types of specialist-document.

While we are here lets also rename DocumentArtefactFormatter to a CmaCaseArtefactFormatter which is its correct name!