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.

As a meta point to this: In the multi-resolution-models branch, I've made a few changes to the "Picked" object structure to make implementation of the atomDoubleClicked and atomClicked callback easier to use. Users should not need to worry about applying the transformation to the atom. Instead that should be done for them behind the scenes.  While doing this, I realized that the callback should probably not be invoked when there was no atom clicked. Otherwise the name is misleading.