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.
Allow nesting of uart claims.
Remove 'NONE' from protocol options.

A driver may now claim a port to prevent normal protocol handling.
Clear uart error flags before enabling DMA.

This should fix #68.
Fix direction in SBP comments
Merge pull request #80 from cbeighley/fix_sbp_comments

Fix direction in SBP comments
Merge remote-tracking branch 'upstream/master' into usart_rework
Update documentation comments.
USART: Fix typo in documentation
Revert "SOLUTION: Reduce solution thread stack size to free up some space."

This reverts commit 82c31e2cadf36e71a3923fed2dea63020f6133e9.
SOLUTION: Remove old kf
Merge pull request #82 from fnoble/remove_old_kf

Remove old KF
SOLUTION: Increase stack size for time_matched_obs thread.

This finally fixes the stack overflow problem. 20k is enough for worst case 11 channels of KF/IAR.

Closes #55.