Digital user input and HID module implementation for PAD

These changes include:
* An implementation of HID module PAD emulation.
* A simple key mapping system which supports multiple devices and front-ends.
* The connections needed to route input from both GLFW and Qt.
This would only happen if there's a key event from GLFW before the VideoCore is initialized fully. It should be fine to ignore without logging, as it won't have any ill effects and is basically "no-op until fully initialized". You'd basically have to be spamming a key while Citra was launching a game to hit it even once.