Added missing changes from previous commit.
Moved input handling to a separate class. Improved controller deadzone detection.
Expanded the InputHandler to handle "button/key pressed" events. Made appropriate changes to the GameWindow class so that it forwards these events to the InputHandler. Added support for toggling the debug overlay.

Specifically, the InputHandler class has a static vector of events. When the GameWindow receives a ButtonPressed (controller) or KeyPressed (keyboard) event, the event is added to the InputHandler's vector. When processInputs() is called, each event waiting in the vector is matched and processed appropriately.

Press F3 (keyboard) or SELECT (controller) to toggle the debug overlay.