AP_GPS: removed GPS_406 driver

this driver was untested and badly structured. If we want to support
the 406 we can revive it and do it properly
AP_GPS: support multiple AP_GPS_Auto drivers

move all static variables into a dynamically allocated structure in
the AUTO driver which gets freed when we have found a GPS type
Plane: use AP_GPS_Auto for 2nd GPS
Rover: use AP_GPS_Auto for 2nd GPS
Copter: use AP_GPS_Auto for 2nd GPS
AP_GPS: new GPS API

This is a complete rewrite of the GPS driver structure, with a static
main driver and separate backend drivers. This will allow proper
support for multiple GPSes, and will allow parameters to be set on the
GPS object
DataFlash: convert to new GPS API
AP_AHRS: convert to new GPS API
AP_Mount: convert to new GPS API
AP_Arming: convert to new GPS API
AP_NavEKF: changes for new GPS API
AP_InertialNav: convert to new GPS API
Plane: convert to new GPS driver API
Rover: convert to new GPS API
Copter: convert to new GPS API
VARTest: converted to new GPS API
AntennaTracker: convert to new GPS API
Replay: convert to new GPS API
AP_GPS: updated examples for new API

removed old per-driver examples, and updates AUTO example
AC_AttitudeControl: updated example for new GPS API