Encapsulates rich text with styles and colors. Text objects may be constructed with Strings containing
markup like @|bg(red),white,underline some text|@, and this class converts the markup to ANSI
escape codes.

Internally keeps both an enriched and a plain text representation to allow layout components to calculate
text width while remaining unaware of the embedded ANSI escape codes.