Add support for cursor-styling

Cursor styling allows the direct styling properties of the next inserted
text to be set. This means that the user can set text-related properties
(e.g., bold, underline, italic) without having an existing selection,
and the next entered character will have this formatting applied to it.

Known issues
- Undo/redo requires multiple steps. Should only be one. But, the current
undo manager design is not amenable to this type of change.