Allow ThreadPool to be configured with an arbitrary number of threads.

size_t is unsigned by definition I believe, but I can add that check for documentation if you like?