Splitting up modules as proposed in issue #34

All tests have been run and pass as expected.

This PR only moves files/functionality around, aside from a few trailing white space removals and semicolon tidy ups not much has changed. You can expect a PR to soon follow where I will go through a couple of the modules and comment things up.