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()
First attempt at stream state

Current thoughts:

1. ModuleDeploymentWriter.Result gets extracted into its own
top level class and renamed to Status.

2. When deploying a single module due to a container or leaving,
query ZK to obtain a collection of Status objects to pass along
to DeploymentUnitStateCalculator. This has XD-1591 as a prerequisite.

3. Status object needs to be written to ZK under
/xd/deployments/streams/<stream-name>/state. It should include
state and an optional error description.
checkpoint
Introduced DeploymentStatus to hold state and error information
Introduced DeploymentStatusRepository
Stream state recalculated upon container arrival/departure
Stream/job state recalculation after container arrival/departure
Pulled up $Result into ModuleDeploymentStatus
ModuleDeploymentStatus used to read/write module deployment state
Recalculate stream state upon leader election