refactored Engine to use SystemList for Input as well
KeyboardInput + minor refactoring