Implement batch horizontal advances callback

The SkFont's overhead is not negligible if we performs glyph width
computation one-by-one. HarfBuzz now supports batch width request,
so let's use it for aoviding SkFont's overhead.

Here is the raw performance scores:

android.text.StaticLayoutPerfTest:
  create
    RandomText Balanced Hyphenation       : 16,311 -> 15,253: (-1058, -6.5%)
    RandomText Balanced NoHyphenation     :  6,679 ->  6,164: ( -515, -7.7%)
    RandomText Greedy Hyphenation         :  6,614 ->  6,083: ( -531, -8.0%)
    RandomText Greedy NoHyphenation       :  6,613 ->  6,090: ( -523, -7.9%)

Bug: 123907498
Test: minikin_tests
Test: hwui_unit_tests
Test: atest CtsTextTestCases
Test: atest CtsGraphicsTestCases
Test: atest CtsWidgetTestCases
Test: TreeHugger
Change-Id: I5a33e24aa0b5d865f02518c5e80177d5a7706593
2 files changed