Added separate last-chosen-joystick preference.  Removed most of the reliance on preferences::use_joystick to determine if any joystick device is in use.
Joystick config screen now uses joystick module to read controllers.
- New interactive_controller_configurer class in joystick::, and new
  singular interface for it.
- Facilities for determining neutral position of analogue axes and
  dead zones.
- Config screen altered to allow more text.
- dialog's on_close_ now has a public setter, so that the config
  screen can guarantee clean up code will always run.
Calibration of neutral positions now optional, depending on
joystick::neutral_zones_known().
- Added various neutral_zones_known() functions.
- Rejigged constants used for default dead zones, now dead_pad
  instead of small_mag.
- Removed last uses of preferences::use_joystick to mask input and
  updates of the joystick:: module, (as opposed to using this
  preferences:: flag to determine user preferences).
- Repaired null  pointer flaws in singular interface to
  joystick:: interactive configurer.
Documented MacOS sdl 2.0.1 work around.