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. Kerning can be negative but is always zero for the first character of a string. 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, so the variable can be removed.
The right edge of the bounding box we are creating is always the same as `pen_x` so no need to keep that separate variable.
The section that assigns the output to zero `if(box_xmin > box_xmax)` is just there for null strings and can be dealt with in simpler way that makes it clearer that is what it is for.
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**.