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
I used the code below to avoid iterating the list twice (clear method performs a second iteration).
However the overhead you introduced is likely negligible and the code clearer.
````java
for (int i = 0; i < colorChunks.size; i++) { 	
    colorChunkPool.free(colorChunks.get(i)); 	
    colorChunks.set(i, null); 	
} 	
colorChunks.size = 0;
````