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.
No, was just a placeholder for future (by you or me).

In addition to that, and per the global comment above at the PR level, we may want to extract the composition logic in a collaborator, and the upload in a (second) collaborator once it is done