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.