Refactored input

Now the input is not directly linked to the player, but the
playercontrolelr initializes the Input through a InputManager. The
InputManger can handle remote and local input, and is the only public
interface for controllign a player. This also closes #40