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