Update gps.c

Now properly uses checksum before applying data in NMEA which corrects sign dropping in Latitude and Longitude
the above stuff is pretty ugly.
I would have placed it all in a struct, something like GpsParserState_t