XD-1372 Aligns Spring XD Reactor to Reactor ver1.1

Additional changes include:

- Incorporated an InboundChannelAdapter based on the NetServerFactoryBean which allows for a simplifed configuration of a TCP or UDP server using the Reactor NetServer abstra
- Updated the XML namespace to include the NetServerInboundChannelAdapter configuration and created a parser for the "netserver-inbound-channel-adapter" element.
- Added a test for the new NetServerInboundChannelAdapter
- Added a batching MessageHandler that uses the RingBuffer directly without built-in, other-thread event handling (all events occur in the calling thread). This implementatio
- Since a MessageChannel implementation is now included in the reactor-spring-messaging artifact, the one from this location was deleted.

XD-1372 Update to reflect changes suggested on the PR #625

XD-1372 Update to reflect changes suggested on the PR #625

Completely removed the netserver namespace as the configuration was uncessarily complicated. Now relying on @Configuration JavaConfig to configure the necessary components.

To that end, created a NetServerSpecFactoryBean and changed the NetServerInboundChannelAdapter to accept the spec, which is the Reactor component holding all the pre-start configuration. The FactoryBean now has the logic of parsing a URI and figuring out what components to configure where. If creating a NetServerInboundChannelAdapter in JavaConfig and needing more flexibility than the string-based property-oriented configuration method allows, simply pass in a configured NetServerSpec with whatever options you wish (including ServerSocketOptions like tcpnodelay() reuseAddress() and so on)

Also hacked the tests to simulate an XD module environment by providing a shim between the ModuleOptionsMetadata class and the StringValueResolver needed to properly bind external values into the base @Configuration class.

XD-1372 Tweak to options metadata description PR #625

Polishing

* Reformat to XD rules
* Move `@EnableIntegration` to the base configuration class
* Remove unused env field from factory bean
XD-1386 Separating YARN app install from submit

- Merge and squashed of Thomas PR 632
- Adding new xd-install.sh shell script for copying app artifacts to HDFS
- Client app now takes parameter of --install and --submit with --submit the default
XD-1383 Added basic tests
- filesink
- logsink
- timesource
- httpSource
- TCPSource

* Updated to use Fixtures.
* Added TCPSource and Sink tests.
* Refactored Code

Merge fix

Added FileSource Test

Added FileSource

Updated with tail and file source tests

TCP Source needs another pause for Redis distro.

Updated based on code review.
XD-885 Register job listeners

- Register XD BatchJob listeners automatically `by default`
 - Register `jobExecution`, `stepExecution`, `chunk`, `item` and `skip` listeners
automatically when the job module is deployed by setting the corresponding
job and step parser factory beans with jobExecution listeners and step listeners
 - Removed explicit registration of XD listeners on job modules XMLs
- Added job module option "--listeners" that accepts comma separated names of the
listeners to activate and register. By default, all the above
mentioned listeners are registered;
 - To select specific listeners `--listeners=item,skip`
 - To disable all the listeners `--listeners=disable`

XD-1362

- Make all the listeners to use pub/sub notification channels
 - Created `pub/sub` notification channels specific to each listeners
 - Created a generic BatchJobListener that sends the payload to the pub/sub
notification channels and make all the XD BatchJob listeners extend this.
 - Also, created a `pub/sub` notification channel that all the listeners send
message to.

- Created JobNotification plugin
 - Created JobNotification plugin that binds/unbinds the notification channels
to/from the messagebus with named channels. The named channels created are:
  `tap:job:myjobname.job`
  `tap:job:myjobname.step`
  `tap:job:myjobname.chunk`
  `tap:job:myjobname.item`
  `tap:job:myjobname.skip`
 - Fixed StreamConfigParser to support indexing on the tap channel name for
jobs so that the above notification channel syntax would work.

XD-1363

- To be able to tap job output channel
 - There won't be `output` channel for the job module. Instead, the generic
pub/sub channel created above that sends all the notification messages acts
as the tap with syntax `tap:job:myjobname`. If all the builtin listeners are
disabled, then this won't be available as well.

- Refactored Plugins
 - Created` JobPartitioner Plugin` that does the binding/unbinding operations on
partitioner channels to/from messagebus.
 - Created `AbstractMessageBusBinderPlugin` that shares common methods related to
binding/unbinding producer(s) and consumer(s) to message bus.
 - Created `AbstractStreamPlugin` and `AbstractJobPlugin` that act as parent for
Stream and Job Plugins.
 - Assigned the highest precedence to Stream/Job Plugins so that their lifecycle methods
would always run prior to other plugins (Just in case if any of the other plugins might
depend on them)

Fix review comments

- Renamed `notifications` to appropriate names
- Added validation method to verify the job listener option
and simplified the logic
- Fixed assertions

XD-885 Fix channel names

- Fix channel var names in Listener classes
XD-1388: Upgrade to batch M3
XD-1378: create tcp-client options

apply to tcp sink

Use a separate option for direct buffers
XD-1394: Upgrade to spring 4.0.2
XD-1328 Modularize UI (Part 1)

- Add RequireJS support for the main app
  - Add RequireJS configuration for xdAdmin app
  - Define AMD modules
  - Bootstrap app with these modules
  - Disable minification of js files for now
- Update/modify grunt tasks
  - Change yeoman.app -> xd.app
  - Remove unused grunt tasks
  - Modify bower components targetDir to use lib/
  - Remove bower components that are not used
  - Adde more comments and fixe some of the grunt build tasks
- Modularize controllers

TBD:

 - Support minification of JS files with requireJS optimizer
 - Fix karma unit tests and add requireJS support
 - Modularize controllers and services further to define
   individual AMD modules for each controller/service.

Jira: https://jira.spring.io/browse/XD-1328
XD-1408 ensure singleton ContainerMetadata
XD-1393 support ZK client connection string
XD-1393 Fix zkClientConnect option

- Fix zk.client.connect option to use empty value instead of ''
- Remove command line options so that this property can only be
  configured either from application.yml or config/xd-config.yml while
  the later has the highest precedence.
  - Fix the related ZookeeperClientConnectTest
- Fix ModuleOptionsDefaultsOrderingTests' application-test.yml to include
  the `zk.client.connect` property
Move gemfire metadata to gemfire project
Fix broken script tests

Options Ordering: restore ENV.
Fix tail options.
XD-1406 Upgrade groovy

-Upgraded groovy `testCompile` dependency to `2.2.2`
Fix JobExecutionListener support

- Add all the available JobExecution listeners to the
  batch job module being loaded.

This will make sure to add the built-in job execution listener
as well as the custom job execution listener if added in the batch
job configuration.

- Fix the jdbc_tests script to use the correct tap channel
  to receive notifications
XD-1343 Added XD extension mechanism

changes per review comments

replaced META_INF with META-INF

supports multiple base packages and locations
Fix NPE in ExtensionsTests
XD-1396 Fix ContainerRegistrar event handler

The ContainerRegistrar should only process the ContextRefreshedEvent from
the ContainerServerApplication's context refresh event. When an external
management server used, then its context refresh also triggers the
ContainerStartedEvent.
 - Fix ContainerRegistrar's event handler to process the event's source
applicaton context ID equals to that of containerID from ContainerMetadata.
Clear system property in tearDown if not originally set.
Fix SingleNode container started event

- Check if the context is not management context instead of checking if the context id is
container id as single node application will have a different id