XD-1309: Skip option validation when doing completion
XD-1122 Add mgmtPort option

Adds an option to set the port on which Spring Boot's management
server listens. 

- Added `mgmtPort` as a CommonOption (for both admin/container)
- The management port can also be set via `XD_MGMT_PORT` as an environment
  variable property
- By default, the mangement port uses admin/container server port in
  admin/container servers respectively.
XD-1021,1037,1277,1039 Fix composed module options

Implement module options advertising and dispatching for composed
modules.
XD-647 Refactor message converters to implement MessageConverter interface

XD-647 merged ModuleTypeConversionPlugin

XD-647 Http source emits byte[] by default

XD-647 General cleanup, added custom converters hook

XD-647 Revert to http source emitting String by default, and Javadoc

Fix generics warnings

Bump groovy version
@Ignore a failing test for now pending investigation
XD-1321 XD-1322 Creating shell scripts and support classes to start XD on YARN

- Adding new spring-xd-<version>-yarn.zip file containing spring-xd-yarn zip and
  client and appmaster jars along with customization files and scripts

- Adding xd-admin and xd-container scripts for YARN

- Adding YARN Client and Appmaster implementations

- Removing directory paths from xd-yarn zip distribution

- New application.properties file can be used to override config options
XD-1291 Graceful container shutdown

- When the container shuts down, there are following application
contexts:
 - (1) ParentConfiguration global context
 - (2) LauncherApplication context whose parent is (1)
 - (3) Common context (from module common)
 - (4) Deployed modules contexts whose parent is (3)

With Boot RC3, the shutdown hook is registered only on (1)
and all the child contexts are subsequently closed using
ParentContextCloserApplicationListener.

This PR addresses the order in which the modules contexts are
closed by making sure the consumer modules (sink/processor) get
closed before the producer modules (if all are deployed inside
a same container).

- ModuleDeployer, during its destroy() will only publish the module
undeployment events as the modules contexts and the common context are closed
appropriately before the ModuleDeployer is destroyed.
XD-1291 Change precedence order

- The producer modules context should be closed before
the consumer modules context.
XD-647: Enable text/plain conversion on byte[] payload
Fix generics warning
XD-1351 Replace Plugin.preprocessSharedContext

- replaced Plugin.preprocessSharedContext with ApplicationListener

- removed duplicate codec bean

- module-common.xml comment and dup method in TestStreamPlugin
XD-1209 external config support for Windows

- Fix xd batch scripts to pass XD_CONFIG as the jvm arg
by setting `spring.config.location`
  - made sure the `file:` URL prefix is added to XD_CONFIG
  - Handle double quotes appropriately. If an environment variable
    has space in it, it is expected to receive the variable in
    double quotes.
XD-1354

Removed XDContainer.

Added ContainerMetadata for use in container events.
(will likely be replaced with the domain model we design for the upcoming ZooKeeper-based runtime update)

Renamed LauncherApplication to ContainerServerApplication.

Moved config location constants to a new ConfigLocations class within the util package.

Updated scripts to use ContainerServerApplication.
XD-1358

Removed unnecessary config files.

Renamed container.xml to container-server.xml (which is imported by ContainerServerApplication) to be consistent with admin-server.xml (which is imported by AdminServerApplication).
XD-1357

If ZooKeeper is available based on the client connect string, the Container's host and PID are written to an ephemeral node under /xd/containers.

That node's name will match the Container ID.

The ID is generated within ContainerMetadata and set on the ApplicationContext via an initializer.

Removed the ContainerStartedEvent publishing from ContainerServerApplication.
Exclude jline 0.9.94 dependency from curator

- The subproject spring-xd-dirt's compile dependency Curator 2.4.0 has jline 0.9.94
as a transitive dependency.
Currently, spring-xd-shell's spring-shell has jline-2.11 as the dependency.
Since, spring-xd-shell has spring-xd-dirt as "testCompile" dependency, there is
a conflict using spring-xd-shell only from within IDE.
Fix broken twitter modules.

Stream and search were both broken due to

- Changes in version of httpclient expected by Spring
- Inconsistent jackson versions between dirt and module

This modifies the reflection hack to account for both types of client
connection factory which Spring can create. Currently adding httpclient
4.3.3 causes a separate problem where the build hangs when running with
rabbit, so the original plan of ensuring httpclient was on the classpath
and therefore an HttpComponentsClientHttpRequestFactory was created is
not acceptable.
XD-1352 JobLaunch request handling

- Throw ModuleNotDeployedException if the job module is not already
deployed in the container that processes "job launch" request
- If the underlying control bus is Rabbit, then this would enable
the MessageListenerContainer not acknowledging the DeploymentRequest message
thereby the message gets processed by a different container. This process
would go on until the container that has the deployed job receives the
DeploymentRequest.