Don't always full invalidate on change of align-content, align-items and align-self.

On change of align-content, align-items and align-self, if there are
real geometry changes, the renderer can handle through the normal
geometry change path. Otherwise we should not repaint.

Move the cases from
RenderStyle::diffNeedsFullLayoutAndPaintInvalidation()
to
RenderStyle::diffNeedsFullLayout

Tests cover cases of align-content, align-items and align-self changes
needing invalidation, and align-content and align-self changes not
needing invalidation.

For now any change of align-items causes reattaching of RenderObject
so we still always invalidate.

This change is needed for bug 408697 (position style change) because
changing position:relative to position:absolute also changes align-self.

BUG=375876
TEST=fast/repaint/align*.html
R=dsinclair@chromium.org, jchaffraix@chromium.org

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

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