[CSS Shapes] Winding rule polygon issues

This patch corrects some of the problems with shape-inside and self-intersecting polygons and eliminates the layout flashing behavior that prompted the original bug report. The FloatPolygon::contains() method now respects the polygon's fillRule and the PolygonShape code used to find shape-inside intervals for the top and bottom of a line now also handles fillRule correctly.

The new tests verify that self-intersecting rectilinear shape-inside polygons work correctly for the evenodd and nonzero fill rules. The shape for tests 001 and 002 contains a loop (the vertices are numbered in the figure):

        0----4----1----5
        |         |        |        |
        |        3----2        |
        7--------------6

When the fillRule is nonzero the entire rectangle is filled because edges 7-0 and 3-4 wind in same direction. When fillRule is evenodd the 1-2-3-4 rectangle is not filled, leaving a U shape. The shape for tests 003 and 004 is similar, but the adjacent vertical edges wind in opposite directions. As a result both nonzero and evenodd fills produce the same U shaped result.

        0----2---1,5---6
        |         |        |       |
        |        3----4       |
        8--------------7

BUG=290950

Review URL: https://chromiumcodereview.appspot.com/24143002

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