added 2 classes:
Thread: implementation of a worker thread (you can pass (threadsafe) functions to it by wrapping them into a functor)
ThreadPool: pool of Threads. dispatches work (functors) to a thread with no work and coordinates the finishing of all threads (ideal for parallel work and synchronisation of the threads afterwards)