Create undo.cpp as new source file and move some code related to undo opreations to it. Also simplify DisconnectBlock a bit.
I guess it is a matter of taste whether one likes these changes or not. But I think it makes sense to move the code now in CTxInUndo::Apply there and out of DisconnectBlock. It makes both functions easier to read, IMHO.