Sleep after NAP version error to allow bootloader script to reset.
Fix bug with new tracking channels.

Now that corr_sample_count is a u32 the integer promotion rules make the whole result unsigned causing carrier phase mayhem.
SIMULATOR: Use MAX_CHANNELS instead of NAP_MAX_N_TRACK_CHANNELS.
SOLUTION: Reduce solution thread stack size to free up some space.
TRACKING: Turn off FLL aiding after locking to reduce carrier noise.
Recovery script: If you incorrectly set your FTDI parameters this script will reset it for you
Timing: get_current_time() returns accurate gps_time_t for every call.
SBP Piksi: Implementing throughput monitoring
SBP OBS MSG: New compacted MSG_PACKED_OBS:

- Sequence of OBS messages for a single set of observations.
- centimeter-accurate pseudorange.
-  GPS Time TOW sent as integer millisecond value, update TIME_MATCH_THRESHOLD accordingly
- Fixed Point Carrier Phase
RADIO: Monitor latency of obs messages
BUGFIX: Fixes up latency monitoring to do a sliding window

Conflicts:
	src/sbp.c
SOLUTION: Set default observation rate to 5Hz.

Now the format is more efficient we can push more over the radios.
Add USART read with timeout and fix Chibios/libopencm3 compatibility issues.
Add 'NONE' as a UART protocol option.  Make send buffer const.
Add support for chat(8) like conversation with modems over uarts.

Adds a TYPE_UART enumeration to type system so modems can be associated with a particular port.
Use a semaphore to claim and release usart rx channel.
Claiming USART must fail if not initialised yet.
sbp: read from usarts only if they can be claimed.
Join usart rx and tx states in a single usart state structure.
Claim ports when sending SBP and NMEA.