More notes on transactional invariants. I finally have a decent idea for how to actually implement them!
Starting work on transactional invariants.

I'm going to take a quick detour, however, and change some terminology to make things a bit clearer: immediate retries will now be called restarts, while blocking retries will just be called retries. Aborts will exclusively be the thing that happens when an exception propagates out of a transaction and causes it to discard all changes it would have made.
Terminology has been changed as per the last commit message.
More invariant progress
Whitespace
Merge remote-tracking branch 'github/master'