Basic XInput support

Adds a new pad handler named XInput. State polling is done in its own internal thread as XInput doesn't have an event-based mechanism.

Mapped:
- D-pad
- Left/right sticks
- Start
- Select: back
- Triangle: Y
- Square: X
- Circle: B
- Cross: A
- L1/R1: left/right shoulder
- L2/R2: left/right trigger (0 to 255)
- L3/R3: left/right thumb

The hidden XInputGetState variant is used when available, which will make it possible to use the Xbox 360 gamepad's guide button for the PS3 gamepad's PS button.

Tested with an Xbox 360 wired gamepad.