AP_Navigation: added a turn_distance() method with turn_angle
AP_L1_Control: implement turn_distance() with turn angle

uses a linear approximation for now.
Plane: calculate next_turn_angle to prevent early WP completion

this should help for ball drop and camera trigger with straight line
runs
GCS_MAVLink: added MAV_CMD_DO_INVERTED_FLIGHT

used to invert from a mission
GCS_MAVLink: rebuild MAVLink headers
AP_Mission: added support for MAV_CMD_DO_INVERTED_FLIGHT
Plane: added MAV_CMD_DO_INVERTED_FLIGHT support

allows for mission control over inverted flight
Spline div zero and leash limit fix
AC_WPNav: spline div by zero fix

Also add check for straight line navigation to ensure speed is not
reduced below zero when it hits the leash limit
Also minor formatting changes
AutoTest: fix error reporting for copter AVC mission
Copter: Improve surface tracking dynamics

This little fix will allow much higher sonar_gain without the
oscillating effect it used to bring.
Copter: accept DO_CHANGE_SPEED outside of missions

https://github.com/diydrones/ardupilot/issues/1095
Copter: flag stays landed unless pilot raises throttle
INav: clear historic z-axis position estimate when set_altitude called
Copter: set inav alt to zero when arming
AP_Math: fast_atan2

This is 126us per call vs 199us on the AVR.  it is accurate to about
0.28 degrees

Committed by rmackay9 but contribution is from David Dewey
CPUInfo: add fast_atan2
Copter: use fast_atan2 for bearings to home and next WP
AC_WPNav: use fast_atan2 for bearing calcs
AC_Circle: use fast_atan2 to calc bearing from center

This does not save much time because it's only called at initialisation