Minikin layout uses a FontCollection containing a list of pre-selected fonts
for a particular font family. This patch extends the FontCollection to invoke
a hook provided by libtxt if layout sees a character that can not be rendered
by any font in the collection.
* Change the Minikin lock to a recursive mutex. This is required because the
fallback font provider may create new fonts during a layout operation that
already holds the lock.
* Implement a fallback font provider hook that queries Skia for fonts matching
an unrecognized character.
* Maintain a cache of fallback fonts. Prepopulate the cache with fonts
covering some commonly used character classes.
* Add a last resort font list for cases where Skia's font manager can not
find any font for a character (similar to Blink's FontCache::getLastResortFallbackFont)