Move loose observers into ObserverRegistry

There were four loose observer collections in the wiring file:

- cma_case_creation_listeners
- aaib_report_creation_listeners
- cma_case_withdrawal_listeners
- aaib_report_withdrawal_listeners

Moving them into the ObserverRegistry cleans up the wiring and the
ServiceRegistry dependencies and puts all of the observers into a single
place for easier extraction into per document type observer registries.
Extract CmaCaseServiceRegistry

Extract CMA case services into a registry of their own. This cleans up
the bloated ServiceRegistry and will make it easier to find common
behaviour between service registries that can be pulled out into shared
behaviour.