Added the beginnings of some abstraction
Switch to a more C++ style approach for setup stuff

I want to switch the logging stuff but it should be a bit nicer as a
macro instead.
Refactor into SimplicityApplication class