Change approach: make a generic class, but keep it internal.

In other words, hide my shame.
Merge branches 'thread_pool' and 'flatten_repeat_timer' into integration