XD-1044

Refactor module dependency tracking to be closer to stream deployment

Update tests so that logic for deleting a composite module in the ModulesController is covered

Move dependency mgmt of stream modules to the repository vs. the deployer

*  RedisModuleDefinitionRepository now stores all fields except, Resource, Classpath and ModuleOptionsMetadata in JSON form using Jackson.
*  Start to encapsulate functionality currently in ModulesController for working with composite modules into a new class - CompositeModuleDefinitionService.  In some ways analogous to the role Deployer's play with Stream/Job controllers.
*  Fix  RedisJobDefinitionRepository and RedisStreamDefinitionRepository serialization to JSON by using ModuleDefinitionMixin
*  Made changes to ModuleDefinition to more easily serialize to JSON.  This is actually a step backwards from the OO point of view.
*  Put duplicated code for module dependency management in RedisStreamDefinitionRepository and InMemoryStreamDefinitionRepository into a separate util class - no inheritance between the two repositories.

Merge ModuleDependencyTracker functionality into repositories
polishing