Add GPX Support

This should be a very nice addition, though it makes the script a little less simple!  I added support for the common GPX format.  It is valid GPX 1.1, works in Google Earth, and includes location, timestamp, and altitude/speed/accuracy when it's available.  It includes two new formats: "gpx" and "gpxtracks."  The first is like the others, and the second (which requires two additional functions and the math library), allows grouping of points into tracks.  It divides tracks where there was no data for over 10 minutes (split of a logical track), or if two data points jumped over approximately 40 kilometers (split based on likely error).  I updated the README as well.

I hope (or others) you find these additions useful and not too bulky.  I have tested them a fair amount.  This branch was developed in sync with the update-kml-valid branch to make two separate pull requests.  There should be no conflicting changes, so I do hope the merge is clear and simple, should you accept both pull requests.

Thanks again!