This patch introduces `GetPositionIgnoringScrollingAndSticky()` and
`GetOffsetToIgnoringScrollingAndSticky()`, and uses the latter in all
the helpers in `AnchorPositioningUtils` instead of
`GetOffsetToIgnoringScrolling()`. As a result, an anchor positioned
element whose anchor is sticky is now laid out against the sticky
anchor's scroll-ignored position.
`GetScrollOffsetFor()` then becomes `GetScrollOffsetTo()`, which
accumulates the difference between the anchor's scroll-ignored and
actual position in a single walk of the frame tree. Because both
accessors are evaluated on the same frames, any scroll container that
moves the anchor and the absolute containing block together cancels
out.
That eliminates the need to check the stop conditions in the old code,
and it works when the absolute containing block is fragmented or has
IB-split siblings.
Differential Revision: https://phabricator.services.mozilla.com/D324789