core::rt: Implement SharedChan
core::rt: Add SharedPort
core::rt: Add `MegaPipe`, an unbounded, multiple producer/consumer, lock-free queue
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
std::rt: Fix stream test to be parallel
std::rt: Fix a race in the UvRemoteCallback dtor
std::rt: Reduce task stack size to 1MB
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.