Refactored thread pools to more closely mirror Java ThreadPoolExecutor.

* More verbose creation of Java thread pools.
* Moved duplicate specs into thread_pool_shared.
* Added to #scheduled_task_count and #completed_task_count to thread pools.
* Added more length methods to fixed thread pools.
* Added more length methods to cached thread pools.
* Refactored thread pools and tests.