Re-highlight annotations whenever an edit occurs

To make it less expensive, a method has been added to `AnnotationViewManager` to refresh not all annotations but only the highlights.
* This is used as a scheduled redraw task inside `SessionView`
to not make it a CPU hog.
* The destroy mechanism for `SessionView` has been restructured to accomodate multiple asynchronous destructors.

Should close #661.
A random DOM function I noticed the other day is ``replaceChild``: http://devdocs.io/dom/node.replacechild

FYI more than anything, no pressure to change.