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.
Excluding the ZooKeeper netty 3.2.2 dependency
Fix completions of composed options
XD-1104: Add tests for jdbc sink module and fix bugs
XD-1162 Adding check for existing value with underscore column name
Fix xd-config.yml

- Added the separator "---" between Redis
and RabbitMQ properties
XD-1356 Adding missing build script entries for 'hdp20'

- Adding missing placeholder for distro directory
XD-1349 Making HDFS configurable via application.yml

- Adding defaults in application.yml

- Using config/hadoop.properties for additional config options
XD-1105: Simple mqtt integration test

Add MqttTestSupport rule.

Note that none of the RabbitSingleNodeStreamDeploymentIntegrationTests
will run if matt is not available as this stands. However it is trivial
to enable the matt plugin in rabbit so this is cleaner than splitting
out a separate rabbit integration tests class for the matt test.
Application now uses singlenode attr in artifact.

Updated formatting for README.md
XD-1367: Remove commons-logging jars from XD distro.

The main lib directory has slf4j jars including jcl-over-slf4j
so we don't need commons-logging. This change excludes them from
the copy of spring-xd-dirt to the final distro. Otherwise we end up
with 27 copies of the jar in the various module and extension
subdirectories.
Fix ModuleDefinitionRegistry when using Redis

The ModuleDefinitionRegistry relied on json serialization, which loses
some information (most notably xml resource location) when
serializing/deserializing
Minor tweet_tests script updates.

Use a more common hashtag search and remove search tweets file on
startup.