Explicitly initialize COM with multi-threaded support.
This is the safest option for applications that use COM, multi-threaded or not.
Added support for double-clicks, through a new "clicks" field in the mouse button event.
Generate SDL_CONTROLLERDEVICEADDED events for controllers connected at startup
Changed testgamecontroller to wait for controllers to be reattached, the way testjoystick does.
Print events with SDL_Log() so they show up in Visual Studio debug output
Added some joystick and controller events to the set that are printed out.
Fixed float to int conversion warning, which was a legitimate bug.
Added a relative mouse mode that uses mouse warping instead of raw input.
To enable this, set the environment variable SDL_MOUSE_RELATIVE_MODE_WARP to "1"

When mouse relative mode is disabled, put the cursor back where the application expects it to be, instead of where it was when relative mode was enabled.
Setting the mouse in relative mode implies grabbing the mouse.
This fixes getting mouse button events in raw input relative mode on X11.