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.
This just makes it obvious what happens when ustring is empty. If we have a fontlist and not ustring, take the first font in fontlist. If we don't have fontlist or do have ustring, it crashes through to the for loop.