init GPS one byte at a time

Partial initialization for GPS. Introduces a new uint32 in `gpsData_t` named `state_position` to mostly keep positions of byte arrays in specific states. GPS state now should be set with `gpsSetState()` which also resets `gpsData.state_position`.