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
More pedantic warnings
Fix of errors triggered by more pedantic compile options
warnings: don't spam with warning for missing field initializer
Merge pull request #869 from PX4/warnings

warnings: don't spam with warning for missing field initializer
Merge pull request #849 from PX4/compile_pedantic

Compile pedantic
Merge pull request #845 from PX4/mag_decl_hotfix

Mag declination hotfix
Merge pull request #749 from DonLakeFlyer/ArmDisarm

Arm/Disarm duplication removal and support for Disarm in VEHICLE_CMD_COMPONENT_ARM_DISARM
Merge remote-tracking branch 'px4/master' into navigator_cleanup