adding highlighting, key events, Selection.

There were a few changes in this delivery, however they were needed to get selection working.
Added functions to add Residues directly to MolViews & ChainViews.
Added Selector class which can handle highlighting, doubleClickZoom, zoomOnEnter. Also supports multi select by using the meta key (command on Mac, ctrl on Windows) and range select by using shift.
Added keyboard event handling through programatically setting focus to the parent dom object on mouseDown.
Updated doc for selection.

This should use ```.. class::Selector```, even though in JavaScript this is written as a function.