Layout children if the width available to them has changed

Currently we let a style change to border or padding trigger a layout to
children, even if the parent's width hasn't changed. This is because the
change in border/padding alters the amount of space available to the children.

Likewise if a box has percent padding and uses border-box sizing then the
space available to children can reduce/increase even when the box itself
doesn't change size (e.g. because it has a max-width). When that happens we
still need to relayout its children so they fit to the changed available width.

If we cached content width or even padding we could watch for changes to this
available width for children but unfortunately we do neither so both of the
above cases have to be identified specifically at layout time.

BUG=391820

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

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