SQLite behavior independent DB test cases

Currently, cleanups in DB test cases rely on the fact, that SQLite
in-memory DB is always used. To be able to run those test cases on RDBMS
like MySQL and PostgreSQL we must make sure that all created tables are
dropped and that test cases use a newly created SQLAlchemy engine
instance. Currently used a kind of Singleton. An instance of sqlalchemy
engine declared globally and reusing until it will be cleaned. Thus
session.cleanup() call is required to destroy engine where it was
created.

Blueprint: tests-given-db-backend
Change-Id: I81d1ac2804dc7434f7ed1f36206f39f777480398
Merge "SQLite behavior independent DB test cases"