Changed toString() to output simply "[lat, lon]" so can easily cut &
paste locations and visualize them in a map.
Changed heading so that it is between 0 & 360 (not negative) for
consistency.
Improved determination of path heading. Now, if at layover and no GPS
heading then will use heading of next path segment.
Multiple changes to better deal with layovers. Previously was too easily
matching to a layover. If got bad GPS then would ignore that spatial
match and would match to next layover. Therefore changed so that can
only match to layover if the temporal match is reasonable.

Also fixed handling when departing on trip early. Previously was
thinking that the match was bad so matched to the previous layover. And
there were situations were system would continue to think that the new
match was bad and would continue to choose the layover match instead.
Therefore, fixed so that a vehicle leaving early is treated as a special
case since temporally it is not doing what it is supposed to do.