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
XD-1378: Add HttpClientProcessorOptionsMetadata
XD-1401 Add reactor-tcp Source and Througput Sink

Added reactor-tcp source module definition. Updated NetServer configuration to use individual properties that can be referenced from the CLI using OptionsMetadata.

Also addresses XD-1407 by adding a simple ThroughputSamplerMessageHandler that counts messages and reports throughput by recognizing demarcation/control messages. The message payloads are configurable but the default is to count messages between START and END messages.
Refactor imap into mail source
Creations options for mail sink
Make ContainerRegistrar ApplicationContextAware

- Fire ContainerStartedEvent only if the application context is
the Container context
Fix script tests

- Fix script tests to use loopback address instead of localhost
Update Spring-AMQP to 1.3.0.RC1