hal::*::lock: Initial commit

This is a basic locking primitive for buillding synchronization
primitives.
hal::cortex_m3::sched: Add CritSection

This implements a simple abstraction for critical sections where
interrupts must be disabled.
lib::shared: Initial commit

This is a simple container for thread-safe state with access guarded by
a CritSection.
lib::queue: Initial commit

This implements a simple thread-safe queue.
os::task: Add support for blocking
os::mutex: Initial commit
os::cond_var: Initial commit