Better support for multi-block register allocation.

Iterate properly over nodes during edge splitting (adding split nodes
to the node list invalidates the iterator).

Delete the original instructions that were hoisted into the
predecessors.  Note: this may not be working properly yet.  Also,
something is wonky about the local register allocation in this case.

Add a global shadow to the output stream so that data structures can
be more easily printed in gdb in cases where the Cfg/Ostream aren't
otherwise available.