Gamepad support!

This replaces the crummy DirectInput joystick support.