Add serial.{c,h} from tankbot project
Replace serial.c logging with error codes
Add DTR toggling to serial.c.
Fix serial I/O under Ubuntu.
Add windows support to serial.c
Replace libftdi/ftd2xx with native serial port code.

This has two advantages:
 - No need to setup ftd2xx library on windows
   (only need the drivers, which are easy to install)
 - No need to unplug/replug when to change device association
   from libusb to emulated serial before doing a firmware
   upgrade / enabling relay mode on linux.
Fix initialization for new timer hardware.
Tweak serial naming and free() serial_port structure.
Rewrite timer communication to use a state machine and structs.
free() timer struct during cleanup.
Split thread shutdown notification / join.
Rewrite fatal error handling and shutdown.

 - The fatal error dialog is now a panel that displays
   over the main window
 - The main window remains open and the log is updated
   with the current status while waiting for worker
   threads to terminate.
Generate random filenames without mktemp().

Retaining the .gz file extension ensures that cfitsio
compresses the file when saving.
Remove unused ftd2xx library files.
Parse and use GPS status sent by the timer.
Length-prefix string messages from the timer.
Standardize packet type names.
Clear buffered serial data after resetting timer.
Fix display of raw data
Add icon and desktop files for ds9 and TBOLTMON.EXE.