Add tests infrastructure

This PR adds very basic infrastucture which will serve as a prequisite for a variety of tests.
Nope. The directory for tests will be called `tests`.