Upgrading input

refactoring inputs
adding diagonals
adding joystick support (really basic)