Split list marker updating into two steps

This patch reverts r164210[1] and fixes it in a different way. A list
marker can be parented on different renderers and changing a list
marker to being "inside" can change the parent. This patch splits the
reparent and update steps from invalidating list marker parent's width.
This refactoring has a few advantages such as removing the
preferredLogicalWidthsDirty check and not dirtying the marker's child
lines since these steps happen naturally as part of reparenting the
marker renderer.

Detailed changes:
1) updateMarkerLocation is now a private implementation detail of
RenderListItem.
2) The reparent and update steps have been refactored out of
updateMarkerLocation. updateMarkerLocation now reparents and updates
the marker while updateMarkerLocationAndInvalidateWidth adds a width
invalidation step that's necessary only during layout (before layout it
wouldn't do anything).
3) The comment "Sanity check the location of our marker." has been
removed--there is no sanity in the render list marker code.
4) HTMLLIElement::attach now just does the reparent and update steps
instead of also invalidating the marker's width.

[1] https://src.chromium.org/viewvc/blink?view=rev&revision=164210

BUG=301196,390569

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

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