smaccmpilot: Flight mode comes from GCS, not user input.

- Changed fight mode 'Loiter' to 'Auto'.
- Flight mode is set from the MAVLink "SET_MODE" custom_mode.
smaccmpilot: Separate arming from flightmode, implement GCS arming.

- Add handler for COMMAND_LONG messages.
- Added a new data port for the armed status.
- Process ARM_DISARM messages from MAVLink.
- Arming via user input is disabled until we have a multiplexer.
mavlink: update submodule
rc override: starting the Tower plumbing.
userinput: refactoring for RC override.
rc override: refactoring for rpyt messages over MAVLink.
Merge remote-tracking branch 'origin/james/flightmode' into joystick

Conflicts:
	src/flight/SMACCMPilot/Flight.hs
	src/flight/SMACCMPilot/Flight/GCS/Receive/Handlers.hs
	src/flight/SMACCMPilot/Flight/GCS/Receive/Task.hs
	src/flight/SMACCMPilot/Flight/GCS/Tower.hs
	src/flight/SMACCMPilot/Flight/GCS/Transmit/MessageDriver.hs
	src/flight/SMACCMPilot/Flight/Types/FlightMode.hs
	src/flight/SMACCMPilot/Flight/UserInput/Decode.hs
	src/flight/SMACCMPilot/Flight/UserInput/Task.hs
merged, haskell builds.  Not fully implemented.
arming state from MAVLink: change dataports to chans.
arming mux: implemented.  compiles (haskell) but untested.
arming mux: builds, compiles.  untested.
arming: fixed logic bugs with arming.
Merge remote-tracking branch 'origin/master' into joystick
Implement mux for arming via GCS and PPM input.

- Remove "as_ARMING" ArmedMode.
- Use a private internal state for the PPM arming state machine.
- Simplify the PPM arming state machine to return an event when
  the arming sequence completes, rather than an arming level.
- Implement correct muxing logic for PPM and GCS.