XD-1223 Fix testdata cleanup

- Fixed ShellIntegration tests
 - Added support to use random stream/job name inside tests to make them unique
 - Refactored some of the tests
- Fixed RabbitSingleNodeStreamDeploymentIntegrationTests, RabbitMessageBusTests,
   RabbitSingleNodeInitializationTests and RabbitJobPluginTests
 - Added cleanup logic to add the queues/exchanges used by tests and delete them
   during teardown

XD-1223 Refactor cleanup logic

- Created TestMessageBus that acts as proxy for the actual MessageBus
and provide test support such as cleanup etc.,
  - Fixed the corresponding tests
- Fixed the issue on NPE in SingleNodeStreamDeploymentIntegrationTests
where the ordering of @AfterClass methods sometimes causes this.

XD-1223 Fix review comments

- Added null check for getMessageBus() method in MessageBus/JobPluginTests.
- Used AlternativeJdkIdGenerator to generate ID for the stream/jobName
  - Also, instead of generating random stream/job name it would be the test method
    name with the generated ID being the suffix to it. One assumption here though
    is that the getStreamName() or getJobName() needs to be called from the actual
    @Test method

Fix typo

XD-1223 Inject TestMessageBus into StreamPlugin

For integration tests, inject the TestMessageBus bean into Module Deployer's
common context by TestStreamPlugin(which is wrapper for StreamPlugin) after removing the StreamPlugin from
the container context.

XD-1223 Fix review comments

- Changed the getTestMethodName() to read generateUniqueName()
- Also added a overloaded version of getStreamName(String), getJobName(String)
- Removed the setAttribute() call in TestMessageBusInjection
- Fixed method names suffix to have "Message" instead of "Msg" in AbstractJobIntegrationTest
Add RandomConfigurationSupport for tests

Add RandomConfigurationSupport for JobPluginTests and JobRepoTests
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.
XD-630: Uncomment all tests that actually work