Simplify observers interface in AaibReportServiceRegistry

Use the same interface as we're using in CmaCaseServiceRegistry by
wrapping the ObserverRegistry methods we care about in an ostruct.
Extract AbstractDocumentServiceRegistry

CmaCaseServiceRegistry and AaibReportServiceRegistry do the same thing
with variation for just three dependencies -- repository, builder and
observers.
Merge pull request #172 from alphagov/extract-common-service-registry

Extract common service registry
Remove validation concerns from form objects

* Create separate validation objects for each document type.
* Convert ManualDocumentForm to a simpledelegator -- avoids unexpected
  errors where it doesn't proxy through methods as expected

+ @bestie
Rename form objects view adapters
Remove inheritance from CoreDocumentValidator
Merge pull request #173 from alphagov/create-validator-wrappers-which-arent-form-objects

Remove validation concerns from form objects
Fix typo in republish script
Merge pull request #174 from alphagov/fix-republish-script-typo

Fix typo in republish script
Fix #update bug in DocumentMetadataDecorator

The extra attributes hash was completely replaced
on update with whatever was in the given hash.

This required the caller to provide all the
key/value pairs for the extra attributes or have
them wiped out. This was inconsistent with the
update behaviour of the other fields.
Merge pull request #175 from alphagov/fix-document-metadata-decorator

Fix #update bug in DocumentMetadataDecorator
Bump gds-sso to 9.3.0

Signon will start rejecting requests that don't include client_id in the
Near Future. Upgrading to 9.3.0 makes this app compatible before that
change happens.

This version of gds-sso has a dependency on multi_json 1.10.0, so bump
that too.
Merge pull request #176 from alphagov/bump-gds-sso

Bump gds-sso to 9.3.0
Use pluralised form for AAIB 'name'
Merge pull request #177 from alphagov/bug/correct-name-for-aaib-schema

Use pluralised form for AAIB 'name'
Fix bug where editing an invalid AAIB report 500'd

All pages which rerender a form need the model to be wrapped in a view
adapter, otherwise on validation failure we attempt to redisplay the
form, which then 500's.
Merge pull request #178 from alphagov/update-to-invalid-bugfix

Fix bug where editing an invalid AAIB report 500'd
Add required require to the wiring file

Add to_param method to attachment s.t. the rails helpers can pick up the
ID's correctly.
Merge pull request #179 from alphagov/add-require-to-wiring

Add required require to the wiring file
Reorder requires in wiring for clarity