XD-1719 JobDeploymentPath deployment status

- Update status at `JobDeploymentPath` after the job module is deployed into a container
XD-928: Refactor DelegatingModuleRegistryTests
XD-928 Polishing

- Use a different package name to avoid "the type collides with a package" warning
- Fix type safety warnings
XD-1707 Polishing

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

Fix bad indentation (eclipse) and call super.recover() from
the AmqpRejectAndDontRequeueRecoverer that was subclassed
to add a WARN log.
XD-1708 Handle module re-deployments

- Update `DefaultContainerMatcher` to use zkConnection to obtain the list
of containers that stream/job module for the same definition might have already been deployed.
 - Filter out this list from the container candidates from the container matcher
- Update and refactor `ContainerListener`'s stream/job re-deployment methods
XD-1338 prep part 2 (work in progress)

Ultimately the goal is to provide the ModuleDeploymentProperties within the
runtime Module instance (e.g. SimpleModule) so that it can be accessed by
plugins. For example, the StreamPlugin will then be able to use any "consumer"
and/or "producer" properties when calling bindConsumer() and bindProducer()
methods on the MessageBus for a given Module.

While initially the plan was simply to pass those deployment properties along
within the DeploymentMetadata, that class itself overlapped with the recently
added ModuleDescriptor. So, this commit actually removes the DeploymentMetadata
class altogether. The ModuleDescriptor replaced the ModuleDeploymentRequest
object, and it wraps a ModuleDefinition (the "essence" of a module that is
shared by all instances within any stream) while adding the context for a
particular module instance within a stream (the group, index,
sourceChannelName, and sinkChannelName). Those properties are the ones that
were also exposed via DeploymentMetadata.

The most significant part of this commit is the modification to the constructor
for SimpleModule as shown below.

BEFORE:

	public SimpleModule(ModuleDefinition definition, DeploymentMetadata metadata) {

AFTER:

    public SimpleModule(ModuleDescriptor descriptor, ModuleDeploymentProperties deploymentProperties)
XD-1338 fix failing tests
Modify ContainerMatcher contract

- Use `Iterable` containers instead of `ContainerRepository` in ContainerMatcher
- Move the logic to filter the containers out of `DefaultContainerMatcher` and have it in
the `ContainerListener`
XD-1726: Change jacoco to 0.7 for jdk 8 builds
Also disabled doclint for jdk 8
XD-1338 prep part 2 (work in progress)

Ultimately the goal is to provide the ModuleDeploymentProperties within the
runtime Module instance (e.g. SimpleModule) so that it can be accessed by
plugins. For example, the StreamPlugin will then be able to use any "consumer"
and/or "producer" properties when calling bindConsumer() and bindProducer()
methods on the MessageBus for a given Module.

While initially the plan was simply to pass those deployment properties along
within the DeploymentMetadata, that class itself overlapped with the recently
added ModuleDescriptor. So, this commit actually removes the DeploymentMetadata
class altogether. The ModuleDescriptor replaced the ModuleDeploymentRequest
object, and it wraps a ModuleDefinition (the "essence" of a module that is
shared by all instances within any stream) while adding the context for a
particular module instance within a stream (the group, index,
sourceChannelName, and sinkChannelName). Those properties are the ones that
were also exposed via DeploymentMetadata.

The most significant part of this commit is the modification to the constructor
for SimpleModule as shown below.

BEFORE:

	public SimpleModule(ModuleDefinition definition, DeploymentMetadata metadata) {

AFTER:

    public SimpleModule(ModuleDescriptor descriptor, ModuleDeploymentProperties deploymentProperties)

David fixed failing tests

passing deployment properties along for StreamPlugin

Conflicts:

	spring-xd-dirt/src/main/java/org/springframework/xd/dirt/server/ContainerRegistrar.java
XD-1338 Partition Metadata Initial Commit

Make ModuleDeployment Properties available in
Messagebus.bind*().
Pass Consumer/Producer Props to MessageBus