Implemented S.Bus 2 decoding support
We do not know all secret S.BUS2 codes yet
px4io: improved reliability of forceupdate re-starting px4io

this adds a 0.1s delay after update to give px4io time to boot. It
removes the need for the user to reboot after an IO update
Merge branch 'master' into sbus2
Disable debug in the airspeed sensor driver - prevents console spam if it fails (and on probing during startup)
Disable PX4IO debug - spams console on comms failure. Each command does report the failure separately, so we get a better feedback level without the spam.
Make the protocol version more descriptive - helps to understand when / how px4io detect fails.
Initialize null pointers correctly, always set the pointer to null after deletes. Remove some verbosity from startup and do not try to initialise IO when we just want to reboot it into the bootloader.
Finally fix the timing race between the IO driver, IO uploader and the on-IO firmware by making the uploader tolerant of timing offsets.
Set timeouts back to short, now that we have multiple tries in the uploader. This ensures we try often enough in the 200 ms IO bootloader wait phase to hit it.
Make the IO mixer upload report not only a global success / fail flag, but on transfer basis. Also use a crude lock to avoid updating the mixer while it runs (we have no proper mutexes on IO, and this is a pure read/write locking case with two locks, which should make the execution even with this crude approach thread-safe).
Make in the comments explicit that we don’t do anything here under normal circumstances to make it less tempting to comment out the helpful debug tools in this section.
Make the sensors app less verbose
Use the proper status registers for locking out from mixer updates and return the value of the mixer change.
Missing header for mixer status change.
Merge branch 'sbus2' into beta
Merge branch 'cleanup' into beta