Domain classes, stream/module deployments

Introduced Module and Stream domain classes. See second commit d996145. The stream/module deployment flow is as follows:

#### 1) Initial Stream Request
The admin server creates the following node:

`/xd/streams/<stream-name>`

#### 2) Admin Leader Stream Preparation

The leader admin server "prepares" the stream by expanding out the expected deployment:

`/xd/streams/<stream-name>/source/<module-name>`
`/xd/streams/<stream-name>/sink/<module-name>`

#### 3) Targeted Container Deployment

The leader admin server issues deployment request to specific container:

`/xd/deployments/<module-name>`

Since the modules have to be deployed in a specific order, the leader blocks until the deployment by the container is complete.

#### 4) Container Accepts Deployment

The container server writes an ephemeral node under the module that it just deployed under the `/xd/streams/.../<module-name>` node. This indicates that the module was deployed by the container.

#### 5) Admin Leader Continues Deployments

When the container writes the expected node, the leader will continue requests for deploying the rest of the modules.

#### Misc Improvements

* Jackson 2.2.2 was introduced for node data serialization. Right now we only support string key/value pairs
* New methods for path string creation were added to the `Paths` utility class