XD-2196: Refactoring of ContainerRegistrar

Moved module creation to ModuleDeployer
XD-2197: Introduce ModuleFactory

refactoring ModuleFactory - made SimpleModule abstract

Some reformatting per Patrick's comments

minor tweaks

rename classLoader to parentClassLoader in ModuleFactory

restored CompositeModule constructor to public and removed PassthruModuleOptionsMetadataResolver

 fix CompositeModuleTests

Refactoring of ModuleDeployer

* Addressed thread safety issues
* Optimized iteration of plugins for modules

 clean up per MF comments
Randomize ports during tests
changed to use use class name for static method
XD-2118: provide a shell command processor

XD-2118 - Added more configuration options and shell sink

XD-2118 Improved error handling and process monitoring copying (somewhat) from SI native tail adapter

XD-2118 Added default values for optional properties

added PythonAvailableRule
XD-1519 Adds missing Job Registry schema files allowing to use GemfireXD and Derby-style databases as main Spring XD storage.

Added files is a copy of MySQL schema files. Works fine with GemfireXD 1.3.0.
#1184
XD-2172 Parameterize transaction isolation level used by Spring Batch JobRepository

Add custom BatchConfigurer to the batch/batch.xml file to make the JobRepositoryFactoryBean settings
available for configuration via server properties. The Spring XD specific BatchConfigurer is a modified copy
of the org.springframework.batch.core.configuration.annotation.DefaultBatchConfigurer
removed process.available() in PythonAvailableRule and added parameterized type