Add a separate class for postable tasks - and use them instead for thread_pool::post
Add unit tests for thread_pool