Implemented the InputHandler. GameStates can now handle buffered keyboard input well. MouseInput (and possibly GamePad) is TODO.