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.
Selection API has the ability to get all the ranges, I think we should have the same for cursors.