Main idea is that non-memfile first undo step should check into previous
memfile and tag the ID it is editing as future_changed.
That way, when we go back and undo to the memfile, said IDs are properly
detected as changed and re-read from the memfile.
Otherwise, undo system sees them as unchanged, and just re-use the
current data instead.