GameCube Pad (nJoy)

Place it in a separate thread

 * Problem: Searching for DInput devices takes several seconds. During which the main thread that runs the game is halted (noticeable by the sound stuttering).
 * Solution: Place the plugin in a thread, like how the Wiimote communication is in a separate thread.

Alternative backend and hot-swapping

 * Problem: Hot-swapping, connecting or disconnecting gamepad devices during gameplay, doesn't work with SDL (primarily because the Wiimote and nJoy plugin shared the same DInput 7 COM interface)
 * Solution: Create a selectable DInput or XInput backend in addition to the SDL backend, which could be configured to support hotswapping.