Separated Joystick into two & three axis joystick classes.

Joystick now represents a simple two-axis joystick with only a trigger
button.
Refactored JoystickAxisState to support the new joystick classes.
Added filtered ThreeAxisJoystick.
Removed broken GamepadJoystickShim.
Fixed HatSwitchButton class for the new ThreeAxisJoystick class.