Encapsulates all logic that touches the document's positions in an actor

This was done to avoid that document's positions could be read/write in
parallel by different threads. This was very possible in the former implementation,
because both the `Presenter$Reconciler` and the
`DocumentProxy$HighlightedPositionUpdater` (which used to run in the UI Thread)
could be stepping on each others while performing some computation on the
highlighted positions.

This fix should finally prevent half-colored identifiers. Furthermore, I think that having
a single place that touches the document's position does simplify reasoning about this
code and will ease maintaining it.

Minor notes:

* I had to add a `Thread.sleep` in the testing code to give some time to the actor to run.

Some other facts about this commit:

* No need for TextPresentationEditorHighlighter to extend InteractiveCompilationUnitEditor
* Improved documentation
* No need to call reconciler.cancel in `PerformSemanticHighlightingOnReconcilation.reconciled`