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.
@archshift Is there any good way to explicitly having to declare an `std::array` without specifying the element count? AFAIK, `make_array` is C++14 material, only.