Refactor

This PR refactors the complete setup into several files, including some namespace renamings and polishing of the overall architecture.

@theneikos: Please review. I used your commits.

Note that the software does not run yet. My fix-branches will be rebased onto this and after that the software should be runable, at least.

Closes #27 and #25 .