Use single set of arm/disarm code

Set mode and arm/disarm commands now call a single method to arm
disarm, thus removing code duplication. Also calls updated
arming_state_transition method such that the arming state logic does
not need to be duplicated outside of arming_state_transition.
arming_state_transition now outputs error messages

If mavlink fd is passed in method will output reason for arming failure
to mavlink.
Function naming and remove unneeded sprintf
Simpler state transition code

Also fixed ARMING_STATE_ARMED_ERROR->ARMING_STATE_STANDBY_ERROR
transition.
Rewrote to provide better feedback

Also allows variables as well as static text for assert text in
ut_assert
Fixed bug with transition from in air restore to armed

Also added better debug output for invalid transitions
Update to convert to C++ style
Added comprehensive arming_state_transition unit test

Also converted full to C++ style. Also converted to new unit test code.
Fix float equality comparison

Also restructured incorrect return statement
attitude_estimator_ekf: use degrees for ATT_MAG_DECL parameter to be consistent with documentation
attitude_estimator_ekf: added missing include
HMC5883: Do not spam the console on error and make everything worse.
airspeed driver: Do not spam the console on error, report the system change only once
airspeed: Let the status check routine handle the initial state
sdlog2: fix lpos labels string, shorten messages with excessive length
sdlog2: Fix indendation to expose length better, cut string lengths for excessive strings
Fixed LPOS message in log, added ground flags field
More pedantic warnings
Fix of errors triggered by more pedantic compile options
mavlink: Start the same in HIL mode as in normal mode. Requires all HIL tools to run sh /etc/init.d/rc.usb now. Improve UART error handling