XD-1848 more fine grained states via REST API

The status of a stream, as returned by the REST API (and thus the shell also),
may now contain any of the following states:

* deploying (deployment has been initiated)
* deployed (fully deployed based on each of the stream's modules' count properties)
* incomplete (at least 1 of each module, but 1 or more of them not at requested capacity)
* failed (1 or more of the modules does not have even a single instance deployed)
* undeployed (intentionally undeployed, or created but not yet deployed)
XD-1760 Enabling Short Circuiting

Now checking deployment property values and setting the "shortCircuitAllowed"
producer property if the following conditions are satisfied:
1. producer module is not partitioning
2. producer module's count is 0
3. next module's count is 0
4. both producer module and next module have the same criteria (both can be null)

Added "shortCircuiting" tests to AbstractDistributedTransportSingleNodeStreamDeploymentIntegrationTests

RabbitSingleNodeStreamDeploymentIntegrationTests and RedisSingleNodeStreamDeploymentIntegrationTests
now both extends from AbstractDistributedTransportSingleNodeStreamDeploymentIntegrationTests

Addressed PR comments, and rebased
XD-1839: Named channels only allowed in full streams
short-circuit -> direct binding
only set the direct binding property if not explicitly provided
XD-1885: Introduce 'hidden' options
XD-1463 Delete post module and CF profile
XD-1463 Changes on merge

- Remove `cloud` profile from XdProfiles
- Remove `cloud` namespace references in modules xml
- Remove `springCloud` jars from DIRT dependency
XD-1884 Added type validation to SimpleModuleModuleOptionsMetadata

XD-1884 added unit test and changes per review

XD-1884 validate default option value
XD-1299: Remove --deleteFiles from hdfsjdbc

Fix filejdbc, add javadoc