Polling joyGetCaps is very very slow, so we should not do that every time GetCapabilities is called. Instead, we should call joyGetCaps once and cache the results. We need to find a different way to implement hotplugging.
Joystick devices will be queried through XInput first, with a fallback to WinMM in case they are not recognized by the newer API.