This was bigger than expected. The gist of it is that I split input out of the GUI class and created GUIStates, which render their own windows and handle their own input in preparation for adding the helpscreen
Help screen pops up on '?' (although there is no way to exit the help screen yet)
Another help page added (test of commit templates)
Event dispatcher introduced