Keyboard commands for multiple selections

This implements:

* Split Selection into Lines - takes the current selection and splits it into one range per line. We just use CodeMirror's implementation for this.
* Add Line to Selection - adds a cursor on the next/previous line from the start/end of each selection range
* Add Next Match to Selection - expands the current primary selection to a word if it's not already a range, then (if it didn't have to expand it) adds the next instance of the range to the selection
* Skip Match and Add Next - like Add Next Match to Selection, but removes the current primary selection as well
* Find All and Select - takes the primary selection, expands it to a word if necessary, and adds all matches in the current document to the selection (removing all other selections)