joystick interface now works with arbitrary joystick axes

code now scans all available axes for changes, then selects the first
two as X and Y, rather than relying on joysticks to have X and Y at 0
and 1.