[OpenTK] Removed unused CreateGraphicsMode API

IPlatformFactory.CreateGraphicsMode is no longer used or required.
[Win] XInputJoystick is now IJoystickDriver2

The IGamePadDriver interface is now implemented using
MappedGamePadDriver on all platforms. This minimizes code duplication
and simplifies all input driver implementations, since we only need
backends for IJoystickDriver2.
[Win] WinRawInput is IKeyboard/MouseDriver2

Since we do not use Raw Input for joystick devices, it does not make
sense to expose the IJoystickDriver2 interface through WinRawInput. This
keeps allows joystick and keyboard/mouse implementations to reside in
distinct, modular classes, instantiated separately through WinFactory.
[Win] Corrected XInput Guid in gamepad database

All XInput devices expose the same button layout, so they only need a
single entry in the gamepad configuration database.
[Win] Added combined XInput+WinMM joystick driver

Joystick devices will be queried through XInput first, with a fallback
to WinMM in case they are not recognized by the newer API.
[Win] Separate keyboard/mouse & joystick drivers

Keyboard/mouse support comes through WinRawInput; joystick support
through CombinedJoystickDriver. These drivers are now instantiated
separately.
[Win] Implemented XInput vibration support
[Win] Improve WinMM.GetCapabilities performance

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.
[Win] Initial implementation of WinRawJoystick
[Common] Added HID usage page definitions
[Win] Added HidProtocol binding
[Common] Cleaned up comments
[Win] Cleanup Raw Input HID usage/pages
[Win] Wrapped additional HID APIs
[Common] Moved axis translation to common
[Win] Fixed RawHID struct definition
[Win] Completed WinRawJoystick implementation
[Input] Added JoystickCapabilities.SetIsConnected
[Win] Reduce duplication in device enumeration
[Win] Completed raw input IJoystickDriver2

For improved safety, we are now using managed memory buffers instead of
stack allocations and pointers.