In a simple test with two strokes affecting the majority of a 25 million vertex mesh (multires level 3), I observed a memory usage decrease from 1.87 GB to 1.51 GB (24% less). Also includes one simplification to Mesh position restore/swap: the indices don't change during undo/redo at all, so we don't need to re-compress the array and store it. Pull Request: https://projects.blender.org/blender/blender/pulls/145747