Convert TextColour to rune type.

 Simplifies the code by eliminating the need for the
 (TextColour)String() function and allowing all colour
 tags to be handled in a single case statement.

Introduce a distinct default colour.

Rename StackStr to TagStack.

Implement (TagStack)HasColour() function, which returns
true if any tag in the stack is a colour changing tag.