Input handling rewritten and improved. The engine can now handle
multiple keys being pressed at the same tame as well as mouse movement