[FastTextAutosizer] FastTextAutosizerLayoutScope > beginLayout/endLayout

This patch switches to using FastTextAutosizerLayoutScope instead of
beginLayout and endLayout. This leads to simpler code at the callsites
because we don't have to worry about calling endLayout() at every
return call in RenderBlockFlow::layoutBlockFlow.

BUG=302005

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

git-svn-id: svn://svn.chromium.org/blink/trunk@166602 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Implement Install{,Phase}Event.waitUntil()

Locally tested following cases in browsertests:
- simple promise case 'this.oninstall = function(e) { e.waitUntil(promise); }'
- non-promise value case 'this.oninstall = function(e) { e.waitUntil(0); }'
- promise rejected case
- multiple waitUntil in one oninstall
- multiple oninstall with waitUntil
- nested waitUntil in chained promise case

BUG=285976, 313530
TEST=to be added in chromium (tested locally)

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

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