Split DMLEditor::ShiftMarkers() into content-dependent and -independent versions

I modified the logic that updates DocumentMarker in response to edit operations
in https://codereview.chromium.org/2755013004. However, it introduced a bug when
doing spellcheck replace (the old behavior removed the marker when the marked
text was changed and the new behavior doesn't).

This CL renames DocumentMarkerListEditor::ShiftMarkers() to
ShiftMarkersContentIndependent() and adds a new method that implements the old
behavior as ShiftMarkersContentDependent(). Spelling, Grammar, and TextMatch
markers should be removed when the text they mark changes, so those marker list
impls are being changed to use the old behavior. Composition markers don't
depend on the text they mark, so they're still using the new behavior (although
in practice it doesn't matter much since Composition markers are cleared by most
editing operations). Where we really need the new behavior is to implement
Android SuggestionSpan support (see crbug.com/672259).

As all non-Composition markers currently use the ContentDependent behavior, I
had to remove/change the expected behavior for a lot of InputMethodController
tests that were testing the new update behavior.

BUG=707867,722721

Review-Url: https://codereview.chromium.org/2895353003
Cr-Commit-Position: refs/heads/master@{#474245}
6 files changed