Refactored mouse / keyboard input; dynamically resolves between gamepad and mouse / keyboard states