supporting simple module deployment

this is just a stepping stone commit, still requiring a lot of rework

does not yet support options values, composed modules, jobs, or source/sink channels

Added ZooKeeperStreamDefinitionRepository

That is now instantiated within both redis-store.xml and memory-store.xml.

It will later be expanded to supplant those (the --store option will no longer be necessary).

The /streams endpoints in the REST API are now backed by this implementation.

Added support for Module undeployment

Implemented ZooKeeperStreamDefinitionRepository findAll methods needed to support 'stream list'

Removed RedisStreamDefinitionRepository and InMemoryStreamDefinitionRepository

Tests (work in progress)

Stream delete functionality

Introduced the ability to undeploy and delete a stream.
The Stream object has a new property in its map to
determine if the stream's modules should be deployed
upon creation. This property is exposed through
a "getter" in the Stream object and is examined
when a stream is created or updated in ZK.

Stream module graceful undeployment/destroy

When a stream is undeployed (by marking the 'deployed' flag to
'false' in the stream data in ZK) the admin listener will
remove the source, processors, and sink paths in the order
in which the stream is processed.

Furthermore, when a stream is destroyed via the REST controller,
the stream will be undeployed before it is deleted from ZK.
See StreamDeployer.beforeDelete() for details.

initial support for jobs

some general simplifications (e.g. removed 'undeployChannel')

added support for stream module parameters

added support for stream module classloader

named channel support in stream definitions

handling job undeployment

When a stream is created (but not deployed) a znode will be created in the following format:

/xd/streams/stream-name

When the stream is deployed, /source, /sink/, and
(optionally) /processors znodes will be created, with
their children being the labels for the modules of those
types that belong to the stream.

When the stream is undeployed, the admin will delete
the /source, /sink, and /processors nodes to bring
the znode back to its original undeployed state:

/xd/streams/stream-name
support job redeployment when container departs cluster