XD-1750 Exception handling at module info cmd

Since the option value gets converted at Shell Converter `QualifiedModuleNameConverter`, throw ShellException in case of invalid syntax or module type.

- Validate the info option syntax
  - Check for ":" and expect at least module type is specified
- Validate the module type
  - throw IllegalArgumentException for invalid module type

Fix `NullPointerException` at ModuleController if module definition doesn't exist for the given module name

- Throw `NoSuchModuleException` if the module definition doesn't exist
- Add test

Address review comments
XD-1750 polishing on merge
XD-1655,XD-1654,XD-1217 rewrite twittersearch module

Add Twitter(Search/Stream)OptionsMetadata
Fixed ModuleOption message
XD-1507 Submit job action only for deployed jobs

* Add an ability to filter the undeployed jobs from the list of batch jobs from the `batch` job repository
  - Use ZK job instance repository to get the list of deployed jobs and set the `deployed` status on the returned list of batch jobs. This will allow:
    - The batch job definitions that were undeployed will get the deployed status to `false`
    - The batch job definitions that were destroyed but still have executions and state in batch job repository will get the deployed status to `false`
    - The batch job definitions that are currently deployed will get the deployed status to `true`
  - Update Batch JobInfo and the corresponding REST domain resource JobInfoResource with `deployed` status
* Fix the web UI to disable the `launch` and `schedule` buttons for the batch jobs whose deployed status set to `false`
* Handle JobExecution restart action
  - Show appropriate error message if the job corresponding to the job execution restart action is not deployed.
XD-1770 Fix NPE at ContainerRegistrar

- When deploying stream module, add a null check
 after loading stream from `deploymentLoader`
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.