XD-1708 Improve module re-deployment fixes

Proposed changes for XD-1708:

I was confused by the method signature in
ModuleDeploymentWriter.writeDeployment:

Collection<Result> writeDeployment(
        Iterator<ModuleDescriptor> descriptors,
        ModuleDeploymentPropertiesProvider provider,
        ContainerMatcher containerMatcher,
        Iterator<Container> containersToMatch)

The third parameter is called `containerMatcher` and
the fourth parameter is `containersToMatch`. It seems
to me that an object called `containerMatcher` should
be able to match containers on its own.

Therefore I introduced a new ContainerMatcher implementation
that wraps another ContainerMatcher and also accepts
container ids that should be excluded from matches.
This puts the logic in ContainerMatcher (which is where
it should go since it's one job is to match containers)
and allows for easier reuse down the line if we need it.

Note that this uses the Google Collections library.