GPS on board configuration

This PR adds a few GPS related features when using UBX mode:
- automatically attempt to configure the GPS to the correct baud rate (it tries this at a couple of baudrates)
- configure the GPS to output the messages we use at the appropriate rate
- detect the GPS version and store that in UBloxInfo field
- adds a GPS fix status of Diff3D when you get a differential (i.e. SBAS) fix
- to accomplish this it adds a 16 byte send buffer when configuring a GPS port

This has been tested at 57600 and 115200 on Sparky and seems to work with GPS.

This is inspired and based on http://autoquad.googlecode.com/svn/trunk/onboard/ublox.c . I left his copyright header in the ubx_cfg.c file as well.