WIP Add highlights

Refactor the decoration storage.

More to come...
Yes. This makes sense from a memory perspective. The tough part is that the gutter will render when a line decoration changes. Decorations will likely be applied to both most of the time, so maybe not such a big deal.