I don't understand this. Why does the `moveSelector` method now do a bunch of assertions? I see why we want to use `setCaretBefore` and `setCaretIn`, since those are the new selection-setting hotness, but the assertions are surprising.