Providing a retry callback that you can pass into events that fires when an event tries to retry.
Added tests to ensure get and can cancel retries.
In process of changing consistency enforcement mechanism.  Instead of
doing commit-time validation on events, now acquiring read/write locks
on objects.  Can prevent starvation and could reduce wasted work.
Thin wrappers around Waldo objects so that can distinguish them with isinstance when performing operations on them.
Started adding unit tests for read/write locked objects.  This commit just adds a test for reading a single object before commit.
Added logic+tests for committing a root event on locked objects.
Added more to locked object test.  Now try to write to variable as
well as read it.  Test currently fails.
Locked object test previously hung on read after write.  This was
because I incorrectly completed write commits: I wouldn't overwrite
the write event's write lock on an object because I was accidentally
comparing a uuid to an event, rather than a uuid to a uuid.  Fixed
comparison, plus unified usage of write_lock_holder to be an event
rather than uuid.  Locked object test still fails, but now it fails
because reading stale value in a write event.
Fixed minor bug: was not reading from dirty cell after write, but before event committed.
Added a test to ensure can perform parallel reads on single object.
Minor renaming in test file.
Added a test to ensure that older events correctly preempted younger events.  It currently deadlocks.  Must fix.
Still trying to track down deadlock bug for preemption.  Realized that uuids are actually priorities, not timestamps and had older/younger check backwards.
In performing gte checks, had confused age with priority.  Now, consistently, if one side has a larger uuid, then it has priority.
In try_next, can cause events to backout.  If we do cause other events
to backout, then backout calls try_next.  This (in some cases) can
invalidate state that we're already dealing with in the parent
try_next.  Use this flag to keep track of whether already in try next.
If are, then return out immediately from future try_next calls.
Forgot to unlock after backing out.
When attempt to perform additional operations after backout, should get an exception.  Otherwise, fail.
Added code for forwarding backout request from root node.  Mostly untested.
Root event now sends messages out as part of its finishing its
individual first phase lock.
Refactored locked test util code to use Waldo Endpoint class.