XD-1050: Allow plugins to provide Options Metadata

Use custom converter for MediaTypes

Apply to Job Plugins options

Fix JobPluginTests

Update per review + rename DefaultMOM

Disable default value handling
XD-1266: Assume use of HttpClient for twitterstream

The existing DirectFieldAccessor workaround for setting connection
properties assumed the use of a SimpleClientHttpRequestFactory. If
Apache HttpClient is on the classpath, a different instance is
dynamically chosen. This commit adds httpclient explicitly and fixes
TwitterStreamChannelAdapter to work with the different request factory.
Cleanup explicit Redis queues in Test

- Cleanup redis queues after ModuleDeploymentTests methods
Add transport check in TestMessageBus injection

It looks like the static variable testMessageBus in
AbstractSingleNodeStreamDeploymentIntegrationTests(AbstractSNSDIT) gets
a value from previously loaded test class (ex: RabbitSNSDIT) and
thereby non-null check on TestMessageBus injection fails if the class
LocalSNSDIT is loaded after RabbitSNSDIT. Hence, added an additional
check to verify if the transport is local as it is LocalSNSDIT that
doesn't set the testMessageBus.
Fix basic_stream_tests.

Add database initialization which is no longer enabled by default.
XD-1271: Remove job options from the shell
XD-630: Uncomment all tests that actually work
Refactor unique name generation logic

- Changed the method name getStreamName()/getJobName() to read generateStreamName()/generateJobName()
- Refactored the methods
XD-1250 RabbitMessageBus Shutdown

Several issues resolved:

1. The message bus was using unnamed auto-delete queues for pub/sub.
      A connection glitch would cause such queues to be deleted and
      the container could not recover.
   - changed to use AnonymousQueue and configure the admin to redeclare
     the queue and binding when necessary.

2. The module-common context was never closed so the RabbitMessageBus
      containers would go into recovery mode; currently this is a hard-
      wired 15 second delay (3x5 seconds).
   - the ModuleDeployer is now a `DisposableBean` and destroys all
     deployed modules and the common module context.

3. Changed `RabbitSingleNodeStreamDeploymentIntegrationTests` to delete
      the deployment queues after all contexts are closed.
Upgrade Spring Data Redis to 1.1.1
Merge branch 'master' of github.com:SpringSource/spring-xd into XD-1245
Updated tests.
Update Redis host/port placeholer keys

- Updated Redis host/port placeholder keys to use VCAP redis service
for CF deployments
Fix AbstractSingleNodeStreamDeployment Tests

- Reset testMessageBus to null in @AfterClass
Thanks to @DavidTuranski for the suggestion
- Also removed the explicit check on local transport
  as it is not needed now
- Added back forkEvery flag to test configuration in spring-xd-dirt
XD-1173 Include index in source channel names

(fixed parser bug)

restored log4j.properties

restored StreamConfigParser
Configure Boot's EndpointMBeanExporter

- Enable JMX on boot endpoints if XD_JMX_ENABLED set to true
- Set 'endpoints.jmx.uniqueNames' to true to work around the current
  issue with Boot to uniquely generate the objectName for the MBean
  that exists in both parent/child contexts.
Upgrade to Spring 4.0.1
Add Redis ConnectionPool config

- Updated application.yml with connection pool configs that
  is used in Boot's RedisAutoConfiguration$RedisProperties$Pool
XD-639: Use better msg when trying rm w/o --recursive
Supporting stream creation & HTTP Post