UserInput overhaul

UserInput is created once and passed on to each gameState via
gStateMan.. Seemed like a more clean approach to me. Now each gameState
can decide which listeners to add to the canvas, instead of having to
put a keylistener to the main menu where it is not used at all.