EKF Updates and Bugfixes

These commits improve EKF performance in the following areas:

The EKF can now safely start without GPS and will choose the appropriate mode of operation when armed depending on GPS status
If GPS lock is lost for more than 10 seconds in flight for copters, the EKF will permanently fall-back to a non-GPS mode allowing attitude and height control to be maintained
Recovery back to GPS position after periods without GPS for planes is faster and more reliable.
The bug causing magnetic field learning to be forgotten each time the vehicle was armed has been fixed.
EKF optical flow data is not logged when optical flow data is not used to save log space
Naming of EKF position and velocity hold modes has been changed to avoid confusion with copter flight modes.
**EKF mode of operation status reporting is now consolidated in a bitmasked integer which reflects any mode fallbacks. See the getFilterStatus public method for further information.

** This status message needs to be integrated into the copter flight mode and fail-safe logic so that flight modes fall-back consistently with the EKF modes of operation.