Avoid unnecessary repaints when relative-positioned elements move.

Allow relative-positioned elements to use PositionedMovementLayout when
RenderStyle::visualInvalidationDiff detects that the element is only moving its
position relative to its container and doesn't require a full layout.

The function contains a FIXME warning against the case where relative-positioned
element is an inline. Fortunately this warning doesn't appear to be relevant
anymore. When we set a full layout on the RenderInline (as we do currently)
every linebox it contains gets dirtied. If we just set a PositionedMovementLayout
bit on the RenderInline only the last linebox will get dirtied - the rest of the
element will get moved without repainting.

So there appear to be no negative impacts to setting PositionedMovementLayout
on relative-positioned elements and a definite performance gain by avoiding a
full layout and paint invalidation.


BUG=313562

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

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