System clock defaults
stm32: defines for various clocks

usart_baud uses APB2_CLOCK rather than hard-coded value
Rename and export MM_HEADER_SIZE

This allows other drivers to take advantage of storage flexiblility and
ensure that their allocations will fit within one block.
usart headers in alphabetical order
Cleanup dev/resources.c

Avoid duplicated code by creating a generic resource pointer that may
come from a task or the default_resources
Remove force release of usart_semaphore on panic

printk ignores the semaphore anyway, so this is useless.  The semaphore
no longer needs to be exported either.
Separate read and write resource semaphores

Most resources require a global lock for read and write operations, and
thus would set the read and write semaphores equal.  However, some
resources, like the USART, can read and write separately, and can thus
use different semaphores for each operation.

This allows the USART/USB drivers to remove their getc hack, in which
they would internally release and reacquire the semaphore around a
yield, in order to allow other tasks to print while one waited on input.