surface ability to extend/modify selection, and add ability to deselect items
mark NSScrollView methods as such
factor out index range selection