moved the text attribute declarations to be per-String, instead of global, and changed to mostly Matrix Bold.  The measured descent of Matrix Bold is expressed negatively, which is in flat violation of the rules, so I wrapped all the descent measurements with Math.abs() to counteract that.  Shouldn't be needed, but won't cause problems with well-behaved fonts.
Matrix's negative descent from the LineMetrics is collapsed to zero by TextLayout (to conform to it's spec), thereby making TextLayout.descent unsuitable for calculation.  So converted everything to use Math.abs-wrapped LineMetrics.descent.  This should be a no-op for well-behaved fonts
draw the casting cost icons full-height, rather than reducing by the magic 0.88 scale factor