Added gitignore file to avoid commiting IDE project files.
Added mainloop program to start the window and call the necessary subsystems in every loop runthrough.
Added class GameState to encapsulate the basic storage and functionality to represent the current state of the game.
Changed main loop to use class GameState instead of simple flags.
Added basic event system class to gather and distribute events across the subsystems.
Added GameEvent class to encapsulate information about events.
Changed EventSystem to use GameEvent instances instead of anonymous lists to easier handling of data.
Fixed misunderstanding about local and class fields in class GameState.
Added class KeyMapping to handle input device events.
Cleaned up classes and added some comments.