WebFontInfo's CachedFontSet does not need to list all fonts
WebFontInfo's CachedFontSet does not need to list all fonts

It only needs to keep fonts which provide glyphs which are not
provided by fonts earlier in the list.
We would use FcFontSort's "trim" parameter to do this, but
Behdad discovered that FcFontSort doesn't actually respect
FC_SCALABLE so "trim" might give us incorrect results if the
user has Bitmap fonts installed:
https://bugs.freedesktop.org/show_bug.cgi?id=67845

Until FontConfig is fixed, we just trim ourselves using
FcCharSetMerge, very similar to the logic FcFontSort
uses internally:
http://cgit.freedesktop.org/fontconfig/tree/src/fcmatch.c#n738

This is very unlikely to change cpu usage, but will be a small memory
savings in the browser.

Each of the CachedFontSet lookups is now shorter
(only checks 67 fonts on my machine instead of ~400).

BUG=266214
R=behdad@google.com

Review URL: https://chromiumcodereview.appspot.com/22381009

git-svn-id: bf5cd6ccde378db821296732a091cfbcf5285fbd@155645 bbb929c8-8fbe-4397-9dbb-9b2b20218538

crosswalk-project/blink-crosswalk-efl,hgl888/blink-crosswalk-efl,PeterWangIntel/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,ondra-novak/blink,kurli/blink-crosswalk,nwjs/blink,PeterWangIntel/blink-crosswalk,Bysmyyr/blink-crosswalk,XiaosongWei/blink-crosswalk,smishenk/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,hgl888/blink-crosswalk-efl,Bysmyyr/blink-crosswalk,nwjs/blink,nwjs/blink,PeterWangIntel/blink-crosswalk,modulexcite/blink,PeterWangIntel/blink-crosswalk,Bysmyyr/blink-crosswalk,Pluto-tv/blink-crosswalk,modulexcite/blink,Pluto-tv/blink-crosswalk,kurli/blink-crosswalk,hgl888/blink-crosswalk-efl,Bysmyyr/blink-crosswalk,Bysmyyr/blink-crosswalk,jtg-gg/blink,PeterWangIntel/blink-crosswalk,ondra-novak/blink,nwjs/blink,crosswalk-project/blink-crosswalk-efl,PeterWangIntel/blink-crosswalk,modulexcite/blink,PeterWangIntel/blink-crosswalk,modulexcite/blink,Pluto-tv/blink-crosswalk,jtg-gg/blink,XiaosongWei/blink-crosswalk,Pluto-tv/blink-crosswalk,jtg-gg/blink,nwjs/blink,kurli/blink-crosswalk,Pluto-tv/blink-crosswalk,XiaosongWei/blink-crosswalk,PeterWangIntel/blink-crosswalk,kurli/blink-crosswalk,hgl888/blink-crosswalk-efl,smishenk/blink-crosswalk,nwjs/blink,crosswalk-project/blink-crosswalk-efl,ondra-novak/blink,ondra-novak/blink,kurli/blink-crosswalk,kurli/blink-crosswalk,ondra-novak/blink,Bysmyyr/blink-crosswalk,ondra-novak/blink,kurli/blink-crosswalk,smishenk/blink-crosswalk,hgl888/blink-crosswalk-efl,smishenk/blink-crosswalk,PeterWangIntel/blink-crosswalk,jtg-gg/blink,hgl888/blink-crosswalk-efl,Bysmyyr/blink-crosswalk,smishenk/blink-crosswalk,XiaosongWei/blink-crosswalk,PeterWangIntel/blink-crosswalk,nwjs/blink,smishenk/blink-crosswalk,kurli/blink-crosswalk,jtg-gg/blink,jtg-gg/blink,jtg-gg/blink,modulexcite/blink,Pluto-tv/blink-crosswalk,smishenk/blink-crosswalk,XiaosongWei/blink-crosswalk,hgl888/blink-crosswalk-efl,nwjs/blink,XiaosongWei/blink-crosswalk,smishenk/blink-crosswalk,Pluto-tv/blink-crosswalk,smishenk/blink-crosswalk,Pluto-tv/blink-crosswalk,crosswalk-project/blink-crosswalk-efl,modulexcite/blink,kurli/blink-crosswalk,ondra-novak/blink,jtg-gg/blink,nwjs/blink,kurli/blink-crosswalk,Bysmyyr/blink-crosswalk,modulexcite/blink,crosswalk-project/blink-crosswalk-efl,ondra-novak/blink,jtg-gg/blink,ondra-novak/blink,jtg-gg/blink,nwjs/blink,XiaosongWei/blink-crosswalk,Bysmyyr/blink-crosswalk,modulexcite/blink,XiaosongWei/blink-crosswalk,XiaosongWei/blink-crosswalk,modulexcite/blink,modulexcite/blink,XiaosongWei/blink-crosswalk,hgl888/blink-crosswalk-efl,crosswalk-project/blink-crosswalk-efl,crosswalk-project/blink-crosswalk-efl,hgl888/blink-crosswalk-efl,hgl888/blink-crosswalk-efl,Bysmyyr/blink-crosswalk,smishenk/blink-crosswalk,Pluto-tv/blink-crosswalk,Pluto-tv/blink-crosswalk