Parallel test execution with py.test

Patch adds ability to execute test run distributed over
several processes, each one with isolated database.

Assumptions:
- nailgun user, requires createdb permission, if not please precreate
  databases in format described below
- postgres database will be used for initial connection
- for environment where createdb can not be granted, like ci
  operator need to create several databases, nailgun[0-7],
  count of databases should be equal to TEST_WORKERS variable
- If no TEST_WORKERS provided - default database name will be used,
  it is almost every time nailgun, but you can overwrite it with
  TEST_NAILGUN_DB env variable

To execute tests on your local environment:
  py.test -n 4 nailgun/tests/

DocImpact
Partial-Bug: 1388751
Change-Id: I6037108f1888b61f971a10db5209b20712467173
Merge "Parallel test execution with py.test"