split the project into several modules. fixes #19

I did a full split on each module and got lazy for now on the tests, they are all in the testing module.
Doh, yes of course. This is exactly why I moved all the tests to the testing module.