core::rt: Implement SharedChan
core::rt: Add SharedPort
core::rt: Add `MegaPipe`, an unbounded, multiple producer/consumer, lock-free queue
std::rt: Add JoinLatch

This is supposed to be an efficient way to link the lifetimes
of tasks into a tree. JoinLatches form a tree and when `release`
is called they wait on children then signal the parent.
std: Fix stage0 build

Conflicts:
	src/libstd/rt/comm.rs
rt: Add rust_get_num_cpus
std::rt: Configure test threads with RUST_TEST_THREADS. Default is ncores x2