Added checksum checks, refactored nmea impl, added more unit tests