Cleanup and Simplification of blf_glyph.c
This cleanup should make this file a lot easier to understand. It breaks up some large functions into smaller modular pieces, that not only make it easier to follow but will also allow us to use them in interesting ways later.
blf_glyph_ensure now first calls blf_glyph_render, which returns a fully created glyph, and then blf_glyph_cache_add_glyph which adds the glyph to the cache.
blf_glyph_render itself is three parts. It calls blf_glyph_load to load the glyph data into the face, then it optionally transforms the outline, then it calls blf_glyph_render_bitmap to convert the curves into a bitmap that we can use.
Glyph indexes are found using blf_glyph_index_from_charcode, which is written to allow the font itself to change. We'll be able to easily demonstrate falling back from one to another when glyphs are not found.
The transform functions are written and accessed in a way to make it easier to support variable fonts later. One, blf_glyph_transform_monospace, when combined with fallback will allow glyphs from proportional fonts to be used harmoniously among monospaced fonts.
Having the functions broken up would allow us to load and render glyphs outside of our caching system, for a possible vfont replacement later.
So basically this should pretty it all up and leave it in a nicer shape for new features.