XD-2198: CompositeModuleRegistry

Storing composed modules now is just yet another kind of (writeable)registry, as opposed to an artificial first class citizen before.

Eventually decided to go like this :
`Ctrl -> ModuleDefinitionService -> (Writeable)ModuleRegistry`

where
* ModuleDefinitionService (which I rewrote from scratch but ends up lookup like previous `ComposedModuleDefinitionService`, only it's not **Composed**-centric) 
  1. handles Pagination after the fact
  2. has methods for dealing with composition and (stub of) upload. Those two can leverage common code for a) check existence before 'creation', b) track dependencies, c) deletion
* `(Writeable)ModuleRegistry` is actually the `DelegatingModuleRegistry` that selectively delegates to sub-registries when they are actually Writeable. The one that writes composed definition in ZK is one of them. The one that handles uploaded module should be another

We *may* want to extract bits out of ModuleDefinitionService dedicated to just module composition, and upload management once it is there.
The assumption here is that there is one CompositeModuleRegistry and one WriteableModuleRegistry configured for custom SimpleModules and that they will never have a module with the same name registered. Or to rephrase a module of a certain a name and type exists in at most one WMR.  I think that's reasonable.