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