XD-1548: Refactor duplicate code in Listeners

Created class ModuleDeploymentWriter to write module deployment
requests to /xd/deployments/modules for both streams and jobs.
This class is now used by ContainerListener, StreamDeploymentListener
and JobDeploymentListener for module deployments.

ModuleDeploymentWriter also catches NodeExists exception as
described in XD-1500.

ContainerRegistar now updates the deployment node to indicate whether
the deployment succeeded or failed. This is a partial solution
to XD-1549; we still need a way to convey this information to
the admin. The ultimate solution for stream state may require
XD-1591.

DefaultContainerMatcher was added to the application context so that the
same instance is shared across the application; this ensures the
round robin distribution of modules.

Addressed review comments.
Fixed compile warning

FlattenedCompositeModuleOptionsMetadata.java:152: warning:
[rawtypes] found raw type: EnumerablePropertySource
	EnumerablePropertySource propertySource = mo.asPropertySource();
	^
missing type arguments for generic class EnumerablePropertySource<T>
where T is a type-variable
XD-1686: Pluralize admins group node

- Since we support multiple admin servers and all of them participate in leadership election,
it might be good pluralizing the leadership group path's node name

/xd/admin -> /xd/admins
XD-1504: Avoid duplication when loading streams for deployment

Introduced class DeploymentLoader to handle the loading of
streams and jobs for deployment. It also includes the loading
of deployment metadata.

Eventually this should be merged with the various ZooKeeper
implementations that work the same. For now this was created
to eliminate duplication between ContainerListener,
JobDeploymentListener, and StreamDeploymentListener.
XD-1575

Fixes XD-1575 by adding support for UDP to the SyslogInboundChannelAdapter. Internally it forks on the Tcp/Datagram configuration depending on the value of the "transport" configuration option. The test was updated to run the TCP tests by default, since they are the only ones that can be run reliably on CI servers. The same tests can be run in UDP mode by specifying -Dtransport=udp on the command line when running the tests but they must be run manually because the tests assume that all messages reach the destination which is not a guarantee with UDP so there's no way to reliably test whether messages were properly sent or not.

XD-1575 updates Reactor to version 1.1.0.RELEASE

XD-1575 minor tweaks
XD-1630: Cut dep from xd-shell to xd-dirt
XD-1536: Updated pre-packaged jobs to allow a delimiter to be injected
where apropriate
* Updated configuration of filejdbc, hdfsjdbc, hdfsmongodb, and jdbchdfs
 jobs to allow for the delimiter to be injected
* Added BatchJobFiledDelimiterOptionMixin to provide metadata around
 new delimiter option
* Updated jdbc_tests script to test the processing of a job using a tab
 as a delimiter.
XD-1536 Followup: Fix shell test
Reordered static method/class in SimpleModule
Fixed stale refs to ModuleDeploymentRequest
XD-1700 Disabled auto-format on JavaDoc comments
XD-1696: Job deploy manifest support

- Use `JobDefinitionRepository` in DeploymentSupervisor
- Add `JobFactory` to construct `Job` instance with deployment properties
and job module descriptor.
- Update `JobDeploymentListener`
  - Use JobFactory to construct the job module instead of using jobDefinition
  - Explicitly create `JobModuleDescriptor` with moduleLabel as `jobmoduleName-0`
- Update `ContainerListener`
  - Handle `onChildAdded` and `onChildLeft` events for orphaned job deployments
and re-deployment of departed container's job modules respectively
  - Fix redeployment of stream module in case of a matching container already
holds the same module deployed
- Update `ContainerRegistrar`
  - Use JobFactory to load Job
- Refactor listeners and ContainerRegistrar
  - Inject StreamFactory, JobFactory
  - Create DeploymentUtility that has utility methods for parse/handle deployment
properties
  - Create DeploymentHandler abstract class that other listener classes could extend
- Update `job deploy` command
  - to use properties as request parameters
- Usage of `LOG` -> `logger`
XD-1338 prep

moved ModuleDescriptor to spring-xd-module

moved ModuleDeploymentProperties to spring-xd-module