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 was the alignment arrived at experimentally by trying to satisfy pep8. :-)