[WIP] Simplify UI.Highlighter API

Rather than working with annotation objects, the `UI.Highlighter`
component receives ranges directly and returns highlights. It is
now the job of the caller to determine what to do with those
highlights and when to undraw/redraw them.
If we do this we need to add an option to `Highlighter` like we have for the class. I think I'd rather lift all of that out. If the `Highlighter` is no longer dealing with annotation objects, it's pretty silly for it to be setting an attribute named `data-annotation-id`.