[cmv4] Added unit tests for convertSelectionsToLines() and doMultipleEdits()

@redmunds 

Also made a few minor fixes to the helpers:
* `convertSelectionsToLines()` no longer mutates the original selections (though it passes them back in the `trackedSelections` in the result array, so they could get mutated later)
* moved `doMultipleEdits()` to Document
* `doMultipleEdits()` now returns the resulting tracked selections sorted in document order
* clarified docs for `doMultipleEdits()` to note that groups of edits can't overlap with each other

The unit tests for `doMultipleEdits()` aren't completely comprehensive, but it's getting pretty thoroughly tested via the unit tests for the various multiselect-aware functions that depend on it, so I thought it was okay to just have some basic sanity tests here.