Another overhaul (hopefully one of the last ones) of the rollback handling
This subsystem has seen several passes (most notably
90d7422fc), all of them
utterly misguided and of rather terrible quality :( Lay groundwork for a saner
system by consolidating the "rollback after exception, with potential rewrite"
mechanism. There should be no notably changes in behavior (aside from several
transaction texts), for that see next commit.
Contains a rather hideous piece of code propagated over several years. Not
tackling that yet, as too many things are in motion.
Read under -w