Remove need for GPS_PORT_ID

This pull request removes the need for GPS_PORT_ID.
Instead of making decisions about how to configuration the ublox input/output port based on the GPS_PORT_ID, this code makes configuration decisions based on the response that it receives from the ublox when it queries the port type.

Added lots of comments and #defines to explain numbers used in configuration.
Added the ability to change the ublox dynamic model (portable, automotive, airborne, etc) via the aircraft configuration file.

I have tested this only with UART and have not tested with DDC (I2C), USB, or SPI. Looking at the description and comments in gps_i2c.xml, it appears that the I2C gps module was/is "currently broken".

Fixes #647