[Win] HID-based IJoystickDriver2; improve XInput2 IGamePadDriver

This PR replaces the WinMM-based IJoystickDriver2 with a new, HID-based implementation.

Features:
- Avoids the WinMM / DirectInput limitation where XInput-compatible controllers report incorrect values for L/RTriggers.
- Avoids the use of deprecated WinMM APIs.
- Adds the capability to retrieve device GUIDs in a manner compatible to SDL2 (important for the GamePad configuration database).
- Shares large amounts of code with the Mac OS X HID implementation.
- Improves performance compared to WinMM.
- Opens the way for a haptics implementation (see https://github.com/opentk/opentk/issues/81).

Known issues:
- Vibration is only working on XInput-compatible controllers.

If you are interested in joystick support, please test your joystick devices and post:
- if all buttons are available
- if LR triggers are correctly reported
- if both GamePad and Joystick return valid results
- any crashes or other issues you encounter (esp. if you are running on a 32bit CPU)

You can use "GameWindow States" from OpenTK.Examples as a test program.