class ChefUtils::DefaultThreadPool

The DefaultThreadPool has a fixed thread size and has no queue of work and the behavior on failure to find a thread is for the caller to run the work. This contract means that the thread pool can be called recursively without deadlocking and while keeping the fixed number of threads (and not exponentially growing the thread pool with the depth of recursion).