Remove loads of sleep statements in UTs

This removes all the calls to sleep() in spec/concurrent/executor/thread_pool_executor_shared.rb, replacing them with Event wait/set or CountDownLatch calls in order to block for the minimum sensible amount of time.

Consistently brings `spec/concurrent/executor/{ruby,java}_thread_pool_executor_spec.rb` down from 11s to 5s for me (across MRI, rbx and JRuby), so I think it's worth doing.
I rewrite this test a bit to get by without the sleep, but I'm not really convinced by it. I wonder if this might actually be a good place to use mocks - directly verifying how many times Thread.new is called?