Refactor BitmapFontCache color markdown

Extract:
* TextMarkdown class - can be used to change different parts of text without using color tags inside text
* ColorTagMarkdownParser - parses color markup of a text and fills TextMarkdown object

Fix #2433 BitmapFontCache setting colors goes wrong
It was `float color` before in order to avoid instantiating a new `Color` on each frame when hex notation is used.