thpool: more granular unit tests
thpool: inject all the time-related functions

use dependency injection for all the timing functions, mostly
to ease the testing
thpool: tests for TimeTrackingThread
thpool: document how to get the code coverage.
thpool: split in smaller modules

in order to enhance testability and readability.
Squashed in some minor changes with the same purpose.
thpool: move toy demo in a subdirectory

to reduce the clutter.
thpool: make TODO list explicit
thpool: initial worker tests.