[CSS Grid Layout] Avoid mark grid as dirty always when removing a child

Current code always mark the grid as dirty in RenderGrid::removeChild().

If the grid auto flow property is different to none, the grid has to be
marked as dirty when a child removed. Just in case, the grid contains
auto-placed items, that might need to be re-positioned.

Otherwise, we can simple remove the child from the grid cells where it
is present and update the coordinates cache accordingly.

BUG=248151
TEST=fast/css-grid-layout/grid-item-removal-auto-placement-update.html

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

git-svn-id: svn://svn.chromium.org/blink/trunk@170484 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Refactor StyleInvalidator to encapsulate all style invalidation state.

This is a nice cleanup, and sets us up for separating StyleInvalidator from 
RuleFeatureSet, which will allow us to more easily  TargetedStyleRecalc for style 
sheet loads.

BUG=318468

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

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