Added USART driver and Serial class

USART talks directly to the hardware. Currently it does interrupt
driven receive (placing bytes in a circular buffer) and polled
transmit. I want to eventually change transmit to interrupt driven.

The Serial class is a template which takes the USART class to use
and provide C++ like ostream functions. Currently supported are all
integer types (signed and unsigned) and strings in ram or program
memory. An F() macro is provided, similar to Arduino, to allow
proper operator overloading.