After a long hiatus with a combination of trying to find a job, finding a job, working, doing work on other random project, reading some stuff here and there I have finally managed to make some improvements to this here octree. Most of the work included in this commit is from separate but related projects I have been working on in a bid to improve on the reusability and modularity of my code as such I think I have come a long way as I simply plugged most of this stuff in and changed what very little code I had to in order to get this to work. Currently not all functionality is in order however with time that will come.
New features:
Implemented an abstracted event engine with multiple layers. The OS abstraction layer deals (OSAL) with the raw system events from (eventually all) the operating system(s). It converts system events to OS agnostic engine events which are then in turn handled depending on their nature. Currently window events are passed directly from the OSAL to the (rather poorly implemented) GameCommandQueue. (I haven't decided if this is good or bad for now but it could change) Input events are handled by the InputHandler which currently allows for State and Action key behaviours. After processing all of the OS agnostic input events, the InputHandler will put the necessary GameCommands in the GameCommandQueue for the Game to process.
I have taken an improved approach to my includes in that I now have a precompiled header that is the only included file in every source code. No header file will have an include. This does have the effect of forcing everything to be recompiled when a header file changes which I don't really like since it will eventually (once the project has gotten beefier) take more time to compile the entire project.

The InputHandler also allows for key bindings to be modified at runtime (via editing and reloading the key bindings config file.