Don't try to simplify on merge, never works.
Significantly improve the efficiency of noting indirect users for allocations by moving it into a different pass.

Also fix a couple of minor bugs and shore up the assertions in the save phase.