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 because there are non-type directories in `modules/` at the moment (`common/` and a spurious `lib/`). Previously, to `findAll()` we iterated over all enums and did `findByType()`. This is functionally equivalent (and the version that finds by name and type will continue to work as before)