Try adding a flag to Thread to indicate whether a Thread is a leader.
Removed unused include.
C++11: Use delgating ctors for uncommon ways of constructing Thread.
Less code this way.
Oh, look, we can assign *after* addition. Who knew?