Draft: Hotplug implementation (through HidAPI connection_callback)
Full discussion here: https://discord.com/channels/699861463375937578/1128290958484705280
This MR features a fully functional version of hotplug support for all HidAPI devices. This functionality is achieved by replacing the windows DLLs with a build of HidAPI's connection-callback branch, as well as forcing the most crucial parts to use a cached version of hidapi's header from that branch. The hotplug feature will work on Linux once a compatible build of hidapi is installed in the system. This is not required to build OpenRGB with this support.
If the hotplug feature is available, HID device detection is no longer performed in the detection thread; instead, this task is given to the library itself, and the library will call the necessary detectors. If the feature is not available in the system's library, the detection works the same way as it was before, with only minor differences in controller post-processing.
Detectors themselves have been adjusted to return the list of controllers they detected. This is crucial for how detection works, as it requres the RM to know strictly which controllers belong to which detector and which HID device.
Location field for all HID devices is now set by RM to keep track of device removal, so the code for it's initialization can be removed from all HID controllers.