XD-1416 Activate tap only when 1 or more consumers

When a module that begins with a tap channel (e.g. tap:stream:foo > log) is deployed,
a corresponding ZooKeeper node will be created under /xd/taps if not already present.

The AbstractMessageBusBinderPlugin has a TapListener that reacts to the addition of
such a node by "activating" the tap. Activation is simply the addition of the WireTap
interceptor on the output channel of the module being tapped along with the binding of
a pub/sub producer to that WireTap's channel. That logic remains the same, but has
simply been made lazy, triggered on-demand only when a tap has at least one consumer.

When the last consuming module for a given tap is undeployed, the ZooKeeper node for that
tap is deleted. The TapListener then reacts by removing the associated WireTap interceptor.
XD-1416 Changes on merge

- Fix logger format
- Handle NoNodeException when unregister tap
- When unbinding tap channel, call unbindProducers only if there is a tapped channel
XD-1766 Fixing failing tcptofile test

 - Added --outputType=text/plain option to tcp source as
   that is now required.
XD-1650 Update HDFS sink to accept a partition strategy

- Upgrade to SHDP 2.0.0.RC4
- Related work for SHDP-334
- New hdfs sink options; partitionPath, fileUuid and fileOpenAttempts
- Changes to XD YARN application.yml files due to changes in SHDP RC4 boot config model
- HdfsStoreMessageHandler is now abstract and new implementations for normal and partition writer.
- Namespace parsers now building writer and adapter via factories
-  volatile StoreWriterFactoryBean variables
- Use StandardEvaluationContext instead of EvaluationContext
- Change constructors to use StandardEvaluationContext directly.
- Casting from EvaluationContext to StandardEvaluationContext now happens earlier in a factory which gets it from IntegrationEvaluationContextAware.
- We now fail in MessageExpressionMethods if evaluation context is null instead of creating it manually.
- Remove ctors without an EvaluationContext in MessageExpressionMethods and MessagePartitionStrategy
XD-1771 TwitterSearchTest now tests in append mode

Since the updates to TwitterSearch it returns multiple messages during the duration of the test.
Before we expected only one result/message now we get an indeterminate amount.  Thus the
assertReceived was removed and the file sink that captures the results is now in append mode.