- Added union_signal to allow multiple physical controller actions to
  map to one in-game action.  Alternative method using multimap for
  signal_map may be more attractive in future.
- Fixed bug in joystick::pump_events (failing to check device was not
  null)
- Fixed bug where after initialisation, a joystick would be linked to
  player one regardless of preferences::use_joystick()
- Fixed bug where the joystick config screen would offered for the
  keyboard instead of the correct keyboard config screen.
- Neatened some diagnostic messages.
- Removed some duplicated code relating to joystick::change_device().