Fix highlightWorker to actually perform work

Closes #2211
Documentation pass, part 1 (up to updateDisplay)
Get rid of the viewChanged argument to updateDisplay

Use a more accurate way to determine whether a redraw is needed.
Documentation pass, part 2 (up to startOperation)
[bidi algorithm] Properly categorize zero-width non-joiners

Issue #2218