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've cut the "100.times" to "20.times" in a lot of places, but I don't think it actually makes a difference. On the other hand, 100 times is probably overkill now that these are more deterministic.