Refactor of blf_font_boundbox_ex to make simpler and easier to
follow.
I find this function confusing with unnecessary calculations and redundant variables. This is refactored based on the following:
There are extra variables defined in the middle of the loop (gbox_xmin, gbox_xmax, gbox_ymin, gbox_ymax) that just get assigned to and then they are copied back elsewhere. They can be easily removed to simplify the code.
The left edge of the bounding box is always zero. It starts as zero (assignment to pen_x) and can never change. The only theoretical changes are if any advance were negative, but they are always positive for horizontal layouts. Kerning can be negative but is always zero for the first character of a string. Glyph left bearings can be negative but those are not used here. Its always just zero and that makes sense in that when you output a string at a particular location it will never start to the left of that. So no reason to track this.
The right edge of the bounding box we are creating is always the same as pen_x.
With above in mind half of the function goes away. It is more obvious that we are just creating a single rect that encloses the extents of the glyphs. Confirmed by tested this and current code in serial and asserting on any difference.
Removes 58 lines of code.