[CSS Shapes] shape-outside polygon can fail when line-top intersects a vertex

ShapeInterval now distinguishes between x1==x2 - isEmpty() and x1,x2 haven't been
set yet - isUndefined(). Removed the ShapeInterval setX1() and setX2() methods, since
they're no longer used.

The polygon algorithm for computing excluded intervals now ignores horizontal
edges. It also ignores edges whose lower vertex matches the top of the line, if
the edge's Y direction is upwards (away from the top of the line). The rationale
for this was explained here:
http://hansmuller-webkit.blogspot.com/2012/11/revised-horizontal-box-algorithm.html

This is a merge of http://trac.webkit.org/changeset/167931 by Hans Muller <hmuller@adobe.com>.

BUG=368686

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

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