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.

For the available options, you will have to use ```*optionName*``` instead of ```:optionName:```. There is no built-in syntax for describing dictionaries of options, so we have to create our own highlighting for that. Have a look at how it's done for the viewer constructor documentation.