setup: Factor out axis configuration to widget.

Move code for configuring joystick axes into a separate widget, and
add axis widgets to the configuration window for all possible movement.
setup: Don't leave joystick subsystem running.

Only init the joystick subsystem when we need to call the joystick
API functions, and quit the subsystem when we are finished. This avoids
conflicts with the joystick widgets that quit the subsystem while the
main code relies on it running.

This fixes a bug where trying to calibrate the joystick twice would
fail on the second attempt.