Change Bootloader to use a timeout instead of eeprom flag.

The new hardware uses the DTR control signal to initiate
a hardware reset, so we can reset and immediately fire
data at the bootloader to handle an upgrade without
worrying about corrupted EEPROM booting into an inoperable
state.
Remove magic numbers from baud rate calculation.
Remove support for old hardware designs.
Reorganize display code in preparation for LCD support.
Support LCD display.
Support DTR reset under Windows.
Fix relay mode with new hardware.

The GPS software triggers a DTR and immediately sends
configuration data to the GPS, which puts the timer
into the bootloader. This adds a bypass to skip the
bootloader, while ensuring that we can always return
to the bootloader (by toggling DTR again).

timerutil --relay must now be run every time before
launching the GPS configuration software.
Rewrite command.{c,h} -> usb.{c,h} based on tankbot serial code.
Remove unnecessary plumbing by combining download/monitor.
Move relay mode into timer_status to simplify display.
Rewrite GPS serial parsing and include GPS in status packets.
Remove obsoleted comments
Remove typedefs for consistency.
Length-prefix string messages.
Standardize packet type names.
Increase LCD startup delay, which appears to solve display issues.
Remove an unused #include.
Update datasheets for new hardware.
Rename PPS -> Pulse
Move missing pulse warning to main loop.