Undo sometimes reserved too much space in the buffer, now assert when this happens and allocate the exact size needed. Note prepares for moving text editor undo out of the text block (D3113) which will split the undo buffer into a list of undo steps.