Keeping track of objects that are added and removed in list data wrapper.  Doing this will allow extended lists to more easily reset their values: this is because when we remove an object, we know what object we removed, and therefore know how to add it back if the operation fails.
Adding a test that should help testing failure in applying many operations across an extended list.
Started to add a test to handle rolling back changes after applying
them to an extended list.  Right now, just have infrastructure in
place to synchronize an external list with internal list.  Still must
randomly fail and process undo requests.
Updated test to randomly fail and undo changes when fail.  Note the test itself currently fails.  Must debug to find out why.
Fixed state machine issue produced from handling error when an object
cannot push its changes to hardware.  There were two bugs, A and B.

A: Object preemption

  1) If could not push changes to hardware, would schedule a request
     to start a backout, but would stay in running state.

  2) Because the event was still in a running state, this meant that
     the event could get preempted by another request for the object.
     This means that the object removes itself from the event's
     touched_objects map.

  3) Ths meant that we'd never call backout directly on the object.
     This is bad because objects require being notified of backouts so
     that they can potentially undo their changes to hardware.

B: Entering BACKED_OUT to early

  1) An event would enter BACKED_OUT before it had called the backout
     method of each of the objects it was backing out.

  2) This meant that objects could request themselves to be removed
     from the event's touched_objs map before they were backed out,
     according to the same logic as above.

The solution for both was to add a new state: BACKING_OUT.  You can
enter BACKING_OUT either if pushing a change to an object fails (its
future returns false), or if you're explicitly requested to backout.
An event does not leave BACKING_OUT until it calls backout on all the
objects it has touched.