Started adding second variable to hold thread waiting to upgrade
Added interruption
Fixed bug in signaling waiting threads after releasing write lock
Added back prevention of writer starvation and check for too many reader
threads
Removed unnecessary unpark of waiting upgradable threads
Added comments
Fixed bug in interruption
Fixed bugs in acquiring lock and interruption
Added randomized test
Added pseudo-random number generation to test
Fixed bug in interruption
Added interruption to randomized test
Fixed bug in dequeuing interrupted thread
Removed unnecessary atomic reference
Interrupted threads signal any waiting threads
Added back timeout for locking
Added back timeout for upgrading
Added timeouts to randomized test
Added underscores to time literals