Split project into modules

Refactor testing system into unit and integration tests
Improve sharing of testing resources between modules, local vs remote
Improve classpath separation between the modules

Fix #182