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
Merge branch 'bfc-markdown-fixes' into spiriteq2