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
XD-1662 Tests are failing due to change in JMX endpoint data

* Update parsing code to be more reslient to changes
* Add JUnit tests for the JMX JSON Parsing
* Ensure a more recent version of Guava is being used (old version via
  a transitive dep from spring-hadoop gave errors
* Switch to use FileCopyUtils instead of reading file with base class libs
  in ConfigUtils.java
* Change processor test to use http as source since using trigger was resulting
  in timing errors
* Change appliation-singlenode.properties to use default management port
  of xd-singlenode.
* Update readme to state prerequisites of middleware required to be installed
  for all tests to pass.  Remove mention of setting jmx/jolokia enablement.
XD-1658 TwitterStream Source Acceptance Test

*  Added TwitterStreamSource Fixture
*  Integration test to verify data has been received by XD.
*  Javadoc cleanup
XD-1676 FileJdbc Acceptance Test

*  Initial test
*  Checks if stream or job is reported as deployed.
*  Minor cleanup
XD-1680 - jdbchdfs Acceptance Test

* Additional commits on top of https://github.com/spring-projects/spring-xd/pull/832
* Remove unused logger
* Creation of SpringXDTemplate refactored into reusable method
* Add dropTable method to JdbcSink
XD-1685 XD-1699 - Rabbit source and sink acceptance tests

- Refactored ensureReady method in various source/sinks to AvailableSocketPorts
XD-1682 Syslog TCP/UDP Acceptance Tests
XD-1682 Syslog TCP/UDP Acceptance Tests

remove unused methods for fluent API, could not be used without zero arg ctor in anycase