Bugfix: Add safety checks to font_for_string

* Before font_for_string would fall over if you called it with a missing
  or empty font. Furthermore, it's behavior when called for an empty
  ustring was not intuitively obvious.
* This corrects both behaviors with explicit checks.
* Adds a WARN level log event when it fails out a font for being empty
  or missing, so that a human can correct the situation.

@stvstnfrd please. We can't do prod push without this. Some of our extant prod config tickles this.
Presumably, our bad font isn't the only or last item in the font list. But if it is, then one more trip through the loop will tickle the exception raise indicating we asked for fonts we don't have.