Add option to flush database before/after tests

We need to flush database after running tests.
Before py.test with parallel tests was introduced
dropdb was performed by ./run_tests.sh, but currently
we need to run dropdb for each slave

- Added py.test --cleandb
- Connection should be closed and returned to pool,
  and pool should be recreated, because we are reusing
  same engine after db cleanup is done
- We should not reuse metadata used for models declaration,
  it gets populated by stale db information

DocImpact
Closes-Bug: 1396500
Change-Id: Idc2d4d6395b8b5f30dc7f5e72a80b830808d2b75
Merge "Add option to flush database before/after tests"