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.