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.
Isn't that the foundation of all coding style conventions? :3 I don't mind excluding the braces, but I wanted to point out that "redundant braces" is not a fact in this case, but a preference ;)