Yield thread if there is (probably) no more work.

The scheduler yields if it failed to steal any work due to the task
lists being empty. This should improve performance on multiprogrammed
systems, as it potentially makes room for other worker threads which
still have work to perform.
4 jobs from master in 4 minutes 6 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Build
passed #3298
build_cmake

00:45

 
  Test
passed #3299
run_tests

00:43

 
  Sanitizer
passed #3301
run_address_sanitizer

01:33

passed #3300
run_thread_sanitizer

01:04