Make LayoutState always be RAII

Repaint after layout will eventually do a tree walk that
utilizes LayoutState (or more accurately, something *like*
LayoutState) to quickly compute repaint rects while walking
the tree. In the course of building that functionality, I
got mired in the ugliness of LayoutState.

LayoutStateMaintainer is an RAII that is partially broken
due to the need to explicitly call "pop". RenderView would
explicitly create and initialize a LayoutState on the stack
then clear the pointer after layout. This patch fixes the
LayoutStateMaintainer issue (which necessitated some
refactoring in the rendering code) and introduces a
RootLayoutStateScope that takes care of RenderView's case.

BUG=343896

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

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