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 "Allow the usage of a passed in sqlalchemy engine"