Initial OpenType Font Variations Support

Adding support for instantiating OpenType Font Variations from web fonts
through font-variation-settings on Linux and Mac. Linux currenly
requires a system FreeType at version 2.6.5 or newer and at least macOS
10.11, but support is still experimental.

With this CL, in addition to web fonts Mac supports instantiating system
font variations.

Some known issues, see meta bug crbug.com/669453:
* Correct mark positioning requires new HarfBuzz API to pass axis
  parameters from Skia to HarfBuzz
* Incorrect advance width scaling on Linux when hinting is enabled (as
  it is by default), discussed and almost solved in
  https://bugs.chromium.org/p/skia/issues/detail?id=5917

TEST=fast/text/variable-fonts/variable-box-font.html,
fast/text/variable-fonts/variable-mac-system-font.html,
http/tests/webfont/variable-box-font-arraybuffer.html
FontSettingsTest.cpp
BUG=669459, 670246

Review-Url: https://codereview.chromium.org/2581083003
Cr-Commit-Position: refs/heads/master@{#440455}
26 files changed