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.
This is to capture the discussion we had about a composed module needing more than sub-ModuleDefinition (but less than ModuleDescriptors). (XD-2284)