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.
Can multiple annotations overlap? No changes necessary for this patch (but perhaps a TODO somewhere if this is something we should support)