Prior to this change, the kernel module was using a customized mapping.
This causes issues between users who rely on the mapping not changing
between the no-module and with-module cases.
This change updates the kernel module to report in the exact same
fashion as the default kernel, without any remapping. While this does
mean that the buttons on the X52 and X52 Pro would report different
values, a userspace daemon can always use libx52io to get the button
mapping regardless of which device is plugged in.
The X52 and X52 Pro report the buttons in different orders, e.g., the
mouse primary button is button 30 on X52, but is button 15 on the Pro.
This change ensures that the reported values is consistent between the
different devices.
This change replaces the old USB driver with a more modern HID driver.
This uses the HID framework, which means that we don't have to deal with
the USB transport, and only have to parse and report input events.
[skip ci]