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.
Oh... duh, you are right, silly me. For some reason I thought the span highlight container would be repossessed, but the code will just nest them instead.