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
Plane: convert to new GPS driver API
Rover: convert to new GPS API