Extract box-related from RenderObject::invalidatePaintAfterLayoutIfNeeded()

Also separated incremental invalidation code into
virtual RenderObject::updatePaintInvalidationReason() and
invalidatePaintIncrementally().

Override the functions in RenderBox to contain box-related code
originally in RenderObject::invalidatePaintAfterLayoutIfNeeded().

This doesn't change any current behavior, but makes it possible
to change the box decoration invalidation code to depend on rects
that is only available in RenderBox.

This is preparation for final fix of bug 380472.

BUG=380472
R=leviw@chromium.org

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

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