Changed unit tests sleeps to use TestUtils.sleep.  Also switched to LockSupport.park instead of Thread.sleep where appropriate.
Don't need to synchronize here, we can just park and unpark
Fix for possible NPE
Merge branch 'master' into unstable_staging
Revert "Don't need to synchronize here, we can just park and unpark"

This reverts commit 68d812b033723ef006b110825427761e52df2aa5.

Although I think this idea is sound, there is something that is not quite working right.
Call UncaughtExceptionHandler here as well
Merge branch 'master' into unstable_staging
Merge branch 'unstable_staging' into experimental-avoid_synchronization_in_ConcurrentArrayList
Instead of spin locking, we track waiting threads and notify them once they are ready.  This is also more fair.