Fix to ThreadPoolRunner to address corner case where all jobs are
submitted and the threadpool checked before it has been scheduled and
started spinning up worker threads.  finish condition now checks that
the queue is empty, rather than assuming threads will be running before
finish() is called.