Parse TPV reports

Also upgrade to modern error handling
Alter gps::Fix to use Option since values may or may not be avail.