Cursor / Selection API changes in Editor

Here are my suggestions for editing the cursor and selection API. My main goal is consistency and symmetry. I'll pepper with inline comments explaining my decisions.
Yeah, I do