Add Chord concurrent abstract data type

A chord is like a chain of threads "f, g, ..." where
"g" can only run once "f" has terminated, and so forth.

The implementation of Chord is almost identical to
the C++11 code that one would write with the standard
std::thread class and std::forward utility function.
The only difference is that std::thread is replaced
by our Thread implementation.