XD-1311 XD-1767 JobExecution deployed/deleted status

- Add `deployed` and `deleted` status to JobExecutionInfoResource
- At BatchJobExecutionsController:
  - If the job name exists in the `JobDefinitionRepository` but not at the
`JobLocator` then we would set the jobExecution deployed status to `false`
  - If the job name doesn't exist in the `JobDefinitionRepository` at all,
then we would set the deployed/deleted status to `false`
- At the web UI:
  - Add the label to denote the deployed/deleted status at the
JobExecutions list page
- Fix tests

Add job existence status

Call setter methods from controllers

- Set `Deployed` and `Deleted` status based on the conditions rather than depending on the default value
at the `JobExecutionInfoResource`

Add Javadoc

Modify logic to call the setter methods

Fix BatchJobExecutionsControllerIntegrationTests

- Make jobLocator to return empty list so that all the jobs in test are
considered to be `undeployed`.
XD-1477 Merge Container & ContainerAttributes

- Rename `ContainerAttributesRepository` with `ContainerRepository`
  - Also, `ZooKeeperContainerAttributesRepository` to `ZooKeeperContainerRepository`
- Remove existing `ContainerRepository` that returns the containers iterator
  - Use the newly added ContainerRepository as the dependency instead.
- Compose `ContainerRepository` into `DeploymentSupervisor`
  - Update all the dependent listeners to use this container repository
- Move ContainerAttributes into Container
- Create `ContainerResource` REST domain resource that holds ContainerAttributes
- Update Runtime container command operations
- Fix tests
XD-1812 Dynamic Producer Properties

Pass properties to the bus for dynamically bound channels,
such as those used by the router sink.

- Add the module's producer properties to the module's
   `MessageBusAwareChannelResolver`, which is added as the
   channel resolver for any `AbstractMappingMessageRouter`
   found in the module's context. `StreamPlugin` extracts
   the producer properties and makes them available to the
   module's `MessageBusAwareRouterBeanPostProcessor`.
- When it is determined that the producer needs to be dynamically
   created, pass the properties into the bus along with the
   bind request.
- XD-1707 incorrectly registered a second producer for named
   channels if a named channel consumer was deployed before
   a named channel producer. Remove that logic and add a
   condition to the `AbstractSingleNodeStreamDeploymentIntegrationTests`
   which expected the named channel bean to exist after the
   consumer is bound. With buses other than the `LocalMessageBus`,
   the producer channel bean is not created until the producer is
   bound.
- Minor refactoring in the `RabbitMessageBus`, producer properties
   were incorrectly applied twice to some adapters.
- Enhance `SingleNodeIntegrationTestSupport` to support deployment
   properties and enhance dynamic producer tests to verify the
   properties are set.

XD-1812 Polishing - Handle Bad Properties

Previously, if the dynamic channel had bad properties (e.g.
partitioning), a 'Dispatcher has no subscribers' error would
be logged, when retries are exhausted.

When a dynamic producer is bound, we create and register
a direct channel which is then bound to the bus, this channel
is returned by the resolver.

If the bind failed, the channel remained in the context so when
retry was attempted, we got 'Dispatcher has no subscribers'.

Add code to remove the channel from the context if the bind
fails.

Restructure a little so overridden methods in the local bus
can use common code.

Add a unit test for the bad properties.

XD-1812 Polishing; PR Comments

The initial commit removed `registerNamedChannelForConsumerIfNecessary`
which was incorrectly added to create a producer when a named channel
consumer was registered before a producer.

The commit that introduced that method also added `destroyCreatedChannel`
to remove the channel created for that producer.

This commit removes that method, since it is no longer needed (it will
never find a channel to remove). The set `createdChannels` is no longer
needed either.

Test the channel actually existed before removing it from the context.

Fix typo in JavaDoc.
XD-1591: Flatten out ephemeral nodes

Containers that write out ephemeral nodes indicating deployment
of a module previously used the following node structure
for streams:

/xd/deployments/streams/<name>/<type>/<label>/<container>

This has been modified to look like this:

/xd/deployments/streams/<name>/<type>.<label>.<container>

This change will make it easier to create ZooKeeper watches
on the stream to detect the addition/removal of modules
and thus calculate the state of the stream.

Addressed review comments
XD-1838 FileSourceTest applies uses labels

* SimpleFileSource & SimpleFileSink supports labels.
* Type parameter restriction in AbstractModuleFixture to allow methods to
  return subclass type.
* Create getDslLabel utility method to create start of the DSL with a label.
* Minor formatting changes
XD-1850: IllegalStateException when deploying orphaned...

XD-1850: IllegalStateException when deploying orphaned stream
modules upon a matching container arrival

This was caused by a modification in StreamDeploymentsPath that
now requires module type, module label, and container to be
present since these three fields have been combined into a
single node (see XD-1591).
XD-1851 Introduce cache to ZooKeeperContainerRepository

Introduced PathChildrenCache to ZooKeeperContainerRepository
to address the concerns indicated in
https://github.com/spring-projects/spring-xd/pull/936

Container cache no longer needs to be a member

Since the container cache is no longer externally accessible
due to ZooKeeperContainerRepository, this was moved
to be a local variable within the leader election method.
XD-1775 & XD-1781 HdfsJdbc, HdfsMongo Accept Tests

* Address comments in PR review https://github.com/spring-projects/spring-xd/pull/914/
XD-1814 Acceptance Tests for Labels and Taps

* Includes Transform fixture as well.
* Improvements to Result File Validator.
** The file validator now checks to see if the file is present and loops
   for a period of time with one second pauses if not present.
   Before we always waited pausetime *2000 (millis).
** Runtimes were about 17 min with the latest checks.  Now they are
   running around 12 min.
* testStreamTapTwoProcessors Uses labels vs. module index.
* Delimiter now spelled correctly
* Thread.currentThread().interrupt() is now in the catch block for the thread.sleep
* Removed code for index that was no longer relevant.
Fix ContainerRepositoryTest

- Add explicit check to verify if the saved containers are found
within a specified time (15s).
XD-1517 seperate /deployments and /definitions

XD-1517 Fix AdminUI

- Update changed REST URLs for streams/jobs definitions and deployments paths

Fix integration test scripts

XD-1517 Changed deploy methods to include  as path variable
XD-1051 Remove module display command from shell
XD-1817: Redeploy modules in reverse order

Added inner class ModuleDeployment that holds module redeployment details
Modified redeployStreamModule to use ModuleDeployment
Improved error reporting in Stream.getModuleDescriptor
Minor cleanup on ContainerServerApplication

- Remove PropertyPlaceholderAutoConfiguration in ContainerServerApplication
- Remove unused methods
Fix some generics warnings
XD-1855 Update to use SHDP 2.0.0.RELEASE
Minor fixes on DeploymentSupervisor

- Avoid logging 'null' criteria
  - If the `deploymentProperties` doesn't have the container matching
criteria, then the `DefaultContainerMatcher` logs saying:
"No currently available containers match criteria 'null'"

- Add `POST_INITIALIZED_EVENT` StartMode for containers path cache
start()
XD-1854 Remove Hadoop v1 support

- remove hadoop12, cdh4 and hdp13 distros

- change fs.default.name property to fs.defaultFS
XD-1856 Add option to specify fsUri for hdfs sinks
XD-1861 Fix XD config logger

- Spring Boot 1.1.1 has the following change:
https://github.com/spring-projects/spring-boot/commit/b75578d99c8d435e1f8bf18d0dbb3a2ddf56fdc4
where, an external property source precedence would get re-ordered after the application configuration properties.
This change affects Spring XD config initializer which expects an external "zk-properties" property source
always preceding over the application configuration properties.

 - Fix XdConfigLoggingInitializer to explicitly check for `zk-properties` property source and obtain the
zk connection properties (for standalone/embedded case) before logging the appropriate value.
 - Log transport option for admin server