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.