Add a published_at field to RenderedSpecialistDocument

To avoid updated_at being modified every time we create a new draft, we
want a new 'published_at' field which is set only upon publish.
Update republishing script to work for aaib reports and IDF's
Merge pull request #199 from alphagov/set-published-at-on-rsds

Add a published_at field to RenderedSpecialistDocument
Some notes for Scraperwiki
Complete extraction of all observers to registries

Now that a requirement has arisen to modify the manual observers, it's
time to finish off nuking the observers entirely from the wiring.

Extract Manual, Manual Document and Aaib Report observers into their own
registries and nuke the original 'catch-all' observers.
Move html rendering to erb template

Fix a bug where we were calling content_tag in the service layer. Instead allow the service to pass the document down to the controller. The controller can now decide which html to render (either the document renderer body or the error html) rather than the service making this decision.

This also means the service no longer needs access to content_tag and ActionView methods.
Merge pull request #203 from alphagov/bug/xss-preview-issue-mk2

Move html rendering to erb template
Merge pull request #202 from alphagov/extract-all-observers-to-registries

Complete extraction of all observers to registries
AbstractAttachmentsController#edit does have test converage
ManualDocumentAttachmentsController#edit is also tested
ManualDocumentsController#create also has test coverage
Manual slugs are not validated

The slug validator previously on manuals was
misleading, by having a CMA repository it would
never find that a slug wasn't unique.

While the problem isn't fixed it is now visible.
Remove go_to_edit_page_for_most_recent_case test helper
Merge pull request #204 from alphagov/arbitrary-acts-of-kindness

Arbitrary acts of kindness
Merge pull request #196 from alphagov/scraperwiki

Some notes for Scraperwiki
Fix republishing script

All observer registries are now format-specific. There is no generic
`observers` value in the wiring any more.
Merge pull request #206 from alphagov/fix-republish-script

Fix republishing script
Test more document state things in cukes

- Add a test for withdrawing a published document with a draft
- Clean up some step names (a -> the)
- Test withdrawn cases aren't published by republish script
Make SpecialistDocument#published? more robust

We're going to stop setting old editions to archived when a new edition
is published. This change avoids a document appearing as published when
the most recent edition has been withdrawn.
Don't check for multiple editions when republishing

We're no longer setting old editions to be archived when we publish a
new one, so raising an error when there's more than one isn't helpful.

Since we've updated the behaviour of `SpecialistDocument#published?` to
behave nicely and we filter the list of documents on that before
republishing them, we don't need to worry about bad data in the form of
multiple published edition any more.