Copter: check set_mode for failure

Previously if set_mode failed it would return the copter to stabilize
mode.  With this commit set_mode returns a true/false indicating whether
it succeeded or not so the caller can make the decision as to the
appropriate response which could be to stay in the current flight mode
or try another flight mode.
Revert "Copter: Remove CH7 & CH8 Enable / Disable of GeoFence"

This reverts commit e25b8933f33e60d1281f20198ba8c020b5c3ea5c.
Copter: WP_YAW_BEHAVIOUR param update for Look Ahead
AP_Math: add rotateXY
AP_AHRS: use rotateXY for speed

Saves 0.1ms at 100hz
Copter: Failsafe GCS typo in comments

replaced GPS by GCS word in different comments locations
Copter Motors: replace limit bitmask with structure
Copter: remove unused earth frame rate controllers
LeadFilter: removed this unused library

This was used to project the GPS position forward to compensate for lag
but this has become unnecessary with the introduction of the inertial
nav in x and y axis.
Plane: move failsafe variables into a structure

this makes the logic a bit easier to follow
Plane: don't read control switch when ch3 is in failsafe

use ch3_counter not just the final flag
Plane: check the control switch a bit more often

faster response to mode changes
Plane: set mode CIRCLE on short failsafe in AUTO

this makes the code match the docs
AP_Math: added two new vector/matrix ops for kalman airspeed filter
AP_GPS: added velocity_vector() method
Plane: added note on type of airspeed in docs
AP_Airspeed: added auto-calibration support

This uses a Kalman filter to calculate the right ARSPD_RATIO at runtime

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
Plane: use new airspeed calibration code

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
Plane: update to new license boilerplate for GPLv3

we had LGPLv2 in some places, despite the fw being GPLv3
AP_Airspeed: added EAS2TAS in airspeed driver

this keeps the true airspeed ratio in the airspeed driver, which seems
the most logical place