Add a port of hb_icu_script_to_script to HarfbuzzShaper

Harfbuzz on CrOS does not have hb-icu leading to a compile failure
when system_harfbuzz is turned on to avoid a linker warning.
(see http://crbug.com/353127).

HarfbuzzShaper uses just one function (hb_icu_script_to_script) from
hb-icu and it's a simple wrapper. It's ported to HarfbuzzShaper to avoid
the dependency on hb-icu.

BUG=356929
TEST=content_shell gets built on Linux and no change in layout tests.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@170276 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Separate the geometry update from rebuilding the GraphicsLayer tree

This CL separates the work we do to update the GraphicsLayer geometry from the
work we do to rebuild the GraphicsLayer tree. We now update the geometry in
tree-order rather than paint order, which fixes a bug in how we're propagating
dirty bits during the tree walk. The bug fix is captured by the
reorder-z-with-style.html test added in this CL.

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

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