Use batchOperation() instead of edit op merging for replace all

Logically, this is a single operation, not a set of merged adjacent
operations, and we wouldn't want a second replaceAll done immediately
afterward to merge with it (though it would be difficult to get into that
case).