Poll controllers on a separate thread on Windows

This means controllers will sample more than the game fps, and will work whenever keyboards do.

But, consider a game that is running at 30fps:
 * The cpu runs as fast as it can for 1 frame (1/30 of an emulated second.)
 * The cpu sleeps to wait for the next frame.
 * The user presses buttons during the 1/30 seconds that the game might respond to (per vblank or delay thread, etc.)
 * Nothing happens until the next frame's cpu burst.

Which means, the faster the device, the worse the input latency will be.  This doesn't change that, but at least if the game isn't flipping, it will ensure that controller inputs still work just as well as keyboard inputs.

Maybe we should have an option for faster devices that allows you to force the cpu to checkpoint at least each vblank, or possibly more frequently.  I think that would actually help #4020 (assuming the input device provides enough accuracy.)

-[Unknown]