Setup tests parallelization with pytest-xdist
Our test suite is independent, each test can work on a empty db assuming tables were created.
It wasn't always so. Before tests were running fast but were unreliable. Now they are reliable but a bit slow.
We could parallelize the test execution with `pytest-xdist`. The only requirement is that each distributed worker needs it's own database. This means we need to switch database used during tests, so maybe some refactor is needed, see #247 

See [this comment](https://github.com/pytest-dev/pytest-xdist/issues/271#issuecomment-385594404) about how approximately this should work. Test database should be created only once, and worker databases are created from main (empty) test db as a template. This will be fast. Of course after tests databases need to be cleaned up (note: we don't need posix ipc use as in the comment, just the approximate flow of db creation)