Allow the thread pool to vary in size by basing it on a resource pool
of fixed size thread pools, which are similar to the previous thread
pool implementation.
Fixed size thread pools don't require fibers, but thread pools now
do. Some procedures work with either thread pool implementation.
I think this needs more work, maybe the thread pool should be more
similar to the resource pool, but I think the name change is still
helpful.
Maybe there's a need for a variable size thread pool and that can
better integrate with the work queue.