Refactors ControlledThread to be a class, not just std::tuple. Adds some minor code improvements.