Reland r172943 "Make CSSFontFace::willUseFontData() load fonts with unicode-range"

The original patch was reverted in r173234, because the chagne exposed
a hidden bug of SVG fonts (crbug.com/369633). That bug is being addressed
in https://codereview.chromium.org/271633002/ so I'm relanding this patch.

BUG=369633

> Make CSSFontFace::willUseFontData() load fonts with unicode-range
>
> Before this patch CSSFontFace::willUseFontData() loads font faces that
> have no unicode-range. Since font faces with no unicode-range tends to
> be used as fallback font of segmented font family, this behavior leads
> to unnecessary font downloads.
>
> This patch makes willUseFontData() loads the first unloaded font face
> whose unicode-range intersects with given text. That check does not
> need to be 100% precise (false negative is ok), so it only checks the
> first character of the text, for speed.
>
> TEST=fast/css/font-face-unicode-range-overlap-load.html
> BUG=247920, 246492
>
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=172943

Review URL: https://codereview.chromium.org/270813003

git-svn-id: svn://svn.chromium.org/blink/trunk@173699 bbb929c8-8fbe-4397-9dbb-9b2b20218538