Run zookeeper tests if localhost has a compat. zookeeper server

If a local zookeeper server is running then using that
zookeeper server we are able to run the zookeeper tests,
so instead of always turning these tests off; only turn
them off if no zookeeper server is found.

Change-Id: I27bbc67b4f2d03a4469882fdc3b8015324ad7e3b
Allow the usage of a passed in sqlalchemy engine

In certain use-cases a user of taskflow will likely
have a pre-existing engine that they want to use with
out SQLAlchemyBackend. To allow them to provide such
an engine via the backends constructor for use-cases
where this makes sense.

At the same time move the validation function the
connection class so that it can be called by users
to verify their connection is valid.

Change-Id: I8150194570a84e19712d7d4ca66b79b7161a76e7
Merge "Run zookeeper tests if localhost has a compat. zookeeper server"
Merge "Allow the usage of a passed in sqlalchemy engine"