Refactor the input code

We have an InputManager which holds InputDevice instances.
It is connected to the current Core, and its role is to load the
correct InputDevices and eventually pass them their RETRO_ID mapping
(work still has to be done on this).

We have 2 specialized InputDevice classes: Keyboard and Joystick.

The first one gets keyboard events from the VideoItem QML element, the
second uses SDL's joystick/game controller API to interface with USB
joysticks/gamepads.