New joystick abstraction - make input handling separate from joystick APIs

This allows for APIs to coexist, such as DirectInput alongside XInput for full 360-like controller support. Multiple joysticks are supported. The current behavior is retained, where the most recent action across all controllers is repeated at a 0.1s delay.
Added XInput joystick support. XBMC now supports all 360-like XInput-compatible controllers out of the box using the Xbox 360 keymap, regardless of controller name.
Drop IJoystick::Update(SDL_Event*) from the joystick abstraction