Introduce a repository registry

* Slug uniquness validation removed
* All document formats working
* Manuals in need of fixing
Manuals refactored to use repo registry

* Slug uniqueness enforcement completely removed
* Preview broken
Remove slug uniqueness validation code

Fix the broken preview issue where controllers where relying on a plain hash
of errors rather than a ActiveModel::Vaidations object.
Extract entity registries
Slug clash warnings for manuals and documents
Manuals can have multiple clashing sections

(if you hate yourself)
Dry up SpecialistDocumentEdition scoping
Proper error messages
Remove validation of therapeutic_area from DSU

This field isn't always relevant or available for Drug Safety Update
documents.
Merge pull request #269 from alphagov/repository-registry

Extract more registries
Remove global wiring injection into Cucumber World

Replace a couple of naughty repository references with explicit calls to the
registry.
Remove AbstractAttachmentController subtypes

Instead create more registry objects and dynamically configure the controller
according to the document type coming in from the params.
Merge pull request #275 from alphagov/remove-dsu-validation

Remove validation of therapeutic_area from DSU
Merge pull request #277 from alphagov/remove-attachment-controller-subclasses

Remove AbstractAttachmentController subtypes
Merge pull request #278 from alphagov/remove-repository-sneaky-peaks

Remove global wiring injection into Cucumber World