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