Fix scroll origin, overflow rects, and coordinate flipping  for flexbox.

PaintLayerScrollableArea uses a scroll origin to offset its scroll
position for RTL blocks, to ensure that a zero scroll position
always represents being scrolled all the way to the logical beginning
of the block.  This patch fixes scroll origin calculations for
writing-mode:vertical-rl and for row-reverse and column-reverse flex
directions.

It also fixes how overflow rects are calculated for flex containers,
by adding hasTopOverflow and hasLeftOverflow virtual methods on
LayoutBox, with appropriate overrides on LayoutFlexibleBox.

Finally, it has a couple of miscellaneous fixes for coordinate-flipping
for reverse flow.

BUG=webkit:76129

Review-Url: https://codereview.chromium.org/1921553008
Cr-Commit-Position: refs/heads/master@{#392981}
11 files changed