Fix timer packet parsing on windows + gcc >= 4.7.
Increase startup wait to match longer bootloader timeout on UT system.
Support GPS as well as UTC time.
Don't restore previous serial state on shutdown.

This causes a restart on windows, which breaks relay mode.
Tabs/spaces fixup
Interpolate timestamps to reduce data transmission.

Caveats:
 - Only 1 in N triggers are sent to verify frame times against
 - Camera status updates are disabled if exptime < 500ms
 - Don't work with simulated camera
Display readout time to ms precision. Fixes #1.
Trigger simulated frames for subsecond exposures. Fixes #7.
Split reduction and preview threads into separate files.
Have reduction and preview threads sleep until needed.
Tweak simulated framedata to provide a target for reduction.
Workaround simulated timer failing on minute boundary.
Store module structs in a single place.
Fix unixtime <-> TimerTimestamp conversions.
Move frame saving into its own thread. Fixes #6.

This prevents the UI from locking up at high framerates.
split process_framedata into save/preview.
Improve frame manager logging.
Rate-limit preview updates (defaults to 500ms).
Modify flat/dark countdown into a general burst mode. Fixes #3.
Limit simulated frame size hardcoding to one place.