Divorce PaintInvalidationState from LayoutState

We don't actually benefit from most of the work LayoutState was doing to
keep track of offsets during layout. Instead, we were doing all that
additional work in both invalidation and layout but only using them for
invalidation.

The new PaintInvalidationState inherits the fast paint-offset caching
from LayoutState, but goes the extra mile to identify new repaint containers,
re-enable itself when disabled and an invalidation boundary is crossed, and
work for invalidation containers other than the root.

LayoutState was also improperly accumulating its layoutOffset using things
like scroll offsets, which resulted in incorrect rendering on
fast/multicol/shrink-to-column-height-for-pagination.html. This is fixed
with this patch because we no longer consider paint-specific offsets at
all in LayoutState.

BUG=363834

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

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