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.
Merge remote-tracking branch 'upstream/master' into usart_rework
Update documentation comments.
USART: Fix typo in documentation