HAL_PX4: handle IO errors on microsd

this should handle EINTR gracefully
HAL_PX4: added UART performance counters
HAL_PX4: added storage performance counters
HAL_PX4: added scheduler performance counters
HAL_PX4: prevent loop() overruns using hrt

this ensures if loop() takes more than 1 second, the main task gets
its priority dropped until loop() completes
Copter: set update rate to 50hz during esc calibration

Also modified some comments in the code re the esc calibration
Copter: added set_nav_mode to control initialisation of nav controllers

Renamed run_navigation_controllers() to run_autopilot()
Renamed update_nav_wp() to update_nav_mode()
Renamed wp_control to nav_mode to be more consistent with roll-pitch,
yaw and throttle controllers
Copter: leonard's inav2

Moved loiter controller to navigation.pde
Copter: set each flight mode's nav_mode

Allow ACRO flight mode's roll, pitch, yaw, throttle and nav mode to be
overwritten
RC_Channel: don't change trim if radio in is zero
Plane: don't change trims if radio_in is zero
HAL_PX4: use write() to /dev/pwm_output for servo output

this lowest the cost of PWM output a lot, but relies on the new I2C
based IO firmware
HAL_PX4: added support for /fs/microsd/APM/nostart

prevents APM startup
HAL_PX4: startup in low priority to fix CLI

this ensures that tight sensor loops in setup() can run without
sleeping
Copter: rename ROLL_PITCH_LOITER

new name ROLL_PITCH_LOITER_INAV makes it more clear that it should only
be used with the new inertial nav loiter controllers
AP_Math: switch get_distance_cm to return uint32_t

Includes changes required on ArduCopter and ArduPlane side as well
Copter: make all message output csv
Plane: logging changes to use new faster packet method

also RAW message renamed to IMU
Plane: rename CUR and CURR to CURRENT for logging

Based on user complaint that log was enabled/disabled using CUR while
message that appeared in log was CURR.
Copter: rename CUR and CURR to CURRENT for logging

Based on user complaint that enable/disable was using CUR while message
was appearing as CURR