Reland "[css-pseudo] Implement legacy markers as real pseudo-elements"

This is a reland of 7b29a982d68ee147dcde5858014cb050ad183eea

The initial patch was reverted due to a leak caused by a condition in
LayoutObjectChildList::DestroyLeftoverChildren, which was preventing
markers from getting destroyed.

Original change's description:
> [css-pseudo] Implement legacy markers as real pseudo-elements
>
> Before this patch, list markers were anonymous boxes in legacy layout.
> This patch makes them be pseudo-elements instead. This is a follow-up of
> r731964, which did the same for LayoutNG.
>
> Just like r731964, this patch improves the flexbox_with_list_item.html
> performance test by a 30-40% (this time for legacy).
>
> BUG=457718
>
> TEST=editing/execCommand/create-list-1.html-disabled
> TEST=editing/pasteboard/drag-selected-image-to-contenteditable.html
> TEST=editing/pasteboard/input-field-1.html
> TEST=editing/selection/drag-to-contenteditable-iframe.html
> TEST=editing/selection/move-by-line-002.html
> TEST=editing/selection/selectNode.html
> TEST=editing/selection/selectNodeContents.html
> TEST=editing/unsupported-content/list-delete-001.html
> TEST=editing/unsupported-content/list-type-after.html
> TEST=editing/unsupported-content/list-type-before.html
> TEST=external/wpt/css/css-pseudo/marker-content-014.html
> TEST=external/wpt/css/css-pseudo/marker-content-019.html
> TEST=external/wpt/css/css-pseudo/marker-content-020.html
> TEST=inspector-protocol/resources/dom-snapshot-pseudo-element.html
> TEST=paint/invalidation/list-marker-2.html
> TEST=paint/invalidation/offset-change-wrong-invalidation-with-float.html
>
> Change-Id: I58c8d49e1f2168add3c78a024a2b9371b34262d7
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2007733
> Commit-Queue: Oriol Brufau <obrufau@igalia.com>
> Reviewed-by: Koji Ishii <kojii@chromium.org>
> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
> Reviewed-by: Rune Lillesveen <futhark@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#743220}

Bug: 457718
Change-Id: Ia20878e1aed120f7822ec009ed4a1c96928b46dc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2066747
Commit-Queue: Oriol Brufau <obrufau@igalia.com>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#745012}
44 files changed