Workaround latest boot snapshot issue
XD-2423 Defer WireTap Until Tap Channel Bound

JIRA: https://jira.spring.io/browse/XD-2423

Previously, the `WireTap` was added to the module `output` channel
before the channel was bound to the bus,

There is a race condition where the main stream can start sending
to the tap before it is bound to the bus,  causing 'Dispatcher has no subscribers`
errors. In 1.0.x this would prevent the message from being sent to the
main stream. In 1.1.x, taps run on a different thread so it's just log
noise.

Defer adding the `WireTap` to the tapped module's `output` channel
until it has been bound to the bus as a pub/sub producer.
Fix Test Timing Issue

Caused Travis failure.
XD-2333 Add Kafka integration test

  - Add kafka test support class that checks for kafka server availablity on localhost
     - This uses zk server available on default connect string `localhost:2181`
  - Add test for verifying kafka source and sink
     - having both the source/sink on the same test case will make sure the topic that
gets the data by kafka sink is actually read by kafka source
Fix code review comments
   - Handle Zk connect exceptions
   - Fix create/delete topic in Before/After
   - Remove explicit sleep by setting kafka source consumer timeout to -1 (blocking)