os._exit in _start_child may cause unexpected exception

In _start_child, we may os._exit(status).
status is set by the return value of _child_wait_for_exit_or_signal.
, where status may be None.
And defensive coding to prevent the unexpected exceptions

Change-Id: I4b89147225cc9e848a97816f171f77236bd23b2c
Drop dependency on lockutils from oslo db code

While lockutils is a useful module, it registers a few oslo.config
options, which can possibly lead to unpleasant issues
(DuplicateOptError) when we split oslo.db from oslo-incubator into a
separate library and reuse both lockutils and oslo.db in target
projects. Unfortunately, we can't just remove usage of oslo.config
options from locktutils as it can break backward compatibility for
existing deployments.
The general approach of solving DuplicateOptError issues for oslo
libraries is not to depend on oslo.config as much as possible. So it's
actually worth to have a small code duplication here for the sake of
oslo.db as a standalone library in the future.

Change-Id: I7e3c5e1e9f7df0fec01e0d484e709cb2375025f1
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
Have tox install via setup.py develop

tox 1.6 was released, which means that we can now take advantage of the
feature we added to it - which is using setup.py develop to install the
code into the virtualenv. The logic was taken from run_tests.sh - so the
performance issues around using tox vs. using install_venv should now be
gone.

Ported from Nova: 32d63a9fbe6f353ca1af8922d6bcbb012a2cc32c
Change-Id: If83a5b5473344d3a0e3a3a9fbb4ba16fa75f5be3
Merge "Have tox install via setup.py develop"
Merge "os._exit in _start_child may cause unexpected exception"
Merge "SQLite behavior independent DB test cases"
Merge "Drop dependency on lockutils from oslo db code"