Moved the Wrap Text algorithm into the TextManager and other optimizations.

This made possible to use word wrapping in TextImages.

I also made the text styles cache the font properties so that the game doesn't
do any lookup into the font std::map at draw time and use a simple pointer instead.
Small comment typo fix.