Properly test exported data on publish
Refactor and test previous document edition archiving

This behaviour was previously in the publish document service and not tested.

* The service object was using the #previous_editions method on the document.
  Exposing the underlying editions is not desirable and is something we need
  to move away from.
* The #archive method called on the edition (mongoid) object implicitly persists
  the object but this is not clear.

Now all editions that are passed to the SpecialistDocument object are explicitly
persisted which should avoid some future confusion.
Bug fix for Manual::Edition version number ordering
Remove cruft from SpecialistDocumentRepository
Preparation for manual publishing to external APIs
PanopticonRegisterer more generic

Use specific artefact decorators for each entity in order to handle
* CMA cases
* Manuals
* Manual section

Yay polymorphism.
Add all app subdirectories to $LOAD_PATH in fast specs
Abstract, document and manual artefact formatters
Slug generator can generate with any prefix
Notify Panopticon of Manual publication etc
Manual builds documents via specialised factory
Fix access control feature order dependence
Test to edit manual section and re-publish
Manual publishing to Content API

Manuals will masquerade as Specialist Documents
for the time being until this approach proves
to be inadaquate.
Generate manual slugs under /guidance
[WIP] Work around GdsApi::Response#fetch failing

This would be better solved by making GdsApi::Response respond to #fetch
correctly and then bumping the version of that gem in this app.
Change manual slug prefix to "guidance" in cukes
Update ManualRepositorySpec to reflect new behaviour
SpecialistDocuments publish with a bang
Manual document marshalling

We need a simpler domain, this wiring is a bit tricky.