Change comments implementation to avoid fake highlights

Previously, we were adding fake highlights to comments, which
showed up on the last character of the document, when in always-on
or highlight mode.

This was needed so that the heatmap can find the comments.

The new implementatain is much cleaner; now we maintain a list of comments
independently of the DOM, and the heatmap works from that.

Therefore, the fake highlights are now gone.

Fixes #700.