Adding logging and trying to fix these unit tests (and enforce that only thread at a time is running stronger)
Starting to get a little better about switching the thread control....but definetly not there yet
Make this a little simpler to construct
Might as well have both constructors
Still trying to get this to work, but still not working like what I want....I think I need to change this dramatically
This implementation seems to work, but is very slow
The previous version was only working due to the Thread.sleep that was slowing down execution.  The main thread was able to wake up before other threads that just started....this change forces the main thread to only start once other threads have been given a chance
Still have the issue that if we do a .notify() to wake up the sleeping thread, the main thread gets the runnable lock before the notified thread does
Trying to make changes so that we can make sure that the other thread gets control when we notify
More implementation
Little easier to understand the code this way
Getting soooo close I think
O.M.G.....it works (for sleep, haha, time to verify wait and timed wait)