LameBooleanWaiter
A coroutine-based waiter that suspends until its boolean value toggles.
Call waitForChangeInValue to suspend until the value flips from its current state, and changeValue to update the value and notify any waiting coroutine.
Parameters
value
the initial boolean value.