Add support for time zone offsets

FlySight normally names files and sets modification times using UTC. This
changeset adds a TZ_Offset configuration value, allowing the user to work
in local time.

The logged data retains the same format, e.g. "2013-09-04T02:02:39.50Z",
regardless of TZ_Offset, but this way a day's worth of skydives will be
stored in the same directory and with filesystem timestamps suitable for
correlating with video files or other captured data.
Add Dir_format config option, supporting YYYYMMDD naming convention
Generate a signature file on boot

Currently, FlySight devices can be recognized by inspecting their USB
IDs. This changeset causes the FlySight to automatically generate a
FLYSIGHT.TXT file containing a unique identifier. This allows simple,
user-level tools to identify that a) a newly-mounted volume contains
FlySight data, and b) this data was generated by a specific unit.
Zero-parameter methods need (void)
Move version into FLYSIGHT_VERSION define

This is #defined from the Makefile by passing in a -D compiler option.
The version is generated automatically using `git describe`, the output
of which uniquely identifies the commit. Additionally, the output can
be made more readable (i.e. humanized) by using tags.

Changing the firmware version no longer involves updating any files; it
merely requires committing and building. As a result, Version.h must
always be considered "dirty" by the build system, and any referencing
code must be rebuilt. Recompilation could be reduced by defining
FlysightVersion as an extern char[] PROGMEM, but this is slightly less
convenient for the calling code, so I decided to go this route.

This can be made to work on Windows using batch files, but I do not have
a suitable development environment at this time.
Write FLYSIGHT_VERSION into flysight.txt

This makes it very easy to determine exactly which build is installed
on a FlySight. Additionally, due to the increased verbosity of the new
version string, one may revisit the corresponding source tree by running
`git checkout {version}`.
Add USB serial support

This changeset makes the FlySight a composite USB device, supporting
both the existing mass storage interface as well as a CDC (USB serial)
interface. This directly exposes the u-blox module to the host, which
by default yields a normal GPS stream of NMEA sentences, but being
bi-directional allows the host to reconfigure the module in whatever
manner is desired.
Merge branch 'tz_offset' into HEAD
Merge branch 'alternate_directory_format' into HEAD
Merge branch 'signature_file' into HEAD