Fix message order

Previously we assumed that messages arrived in a certain order, and generated a tone from a complete set of data when the last message arrived. However, in the case that the UART buffer overflows, this is not necessarily true, and the resulting record in the CSV file is a combination of new and old data.

The new method uses the GPS time of week (```iTOW```) value from each message to ensure that we are gathering messages with the same time stamp. If we receive some but not all of the messages for a given time stamp, the corresponding record is not written to the CSV file.