Polyline Gaps

For #2136.

CC @shunter @mramato 
Is this logic right?  Shouldn't it allow `left.x` to be near `right.x` in absolute tolerance, and allow `left.y` to be near `right.y` in relative tolerance?

Basically, 

```javascript
((Math.abs(left.x - right.x) <= absoluteEpsilon) ||
 (Math.abs(left.x - right.x) <= relativeEpsilon * Math.max(Math.abs(left.x), Math.abs(right.x)))) &&
((Math.abs(left.y - right.y) <= absoluteEpsilon) ||
 (Math.abs(left.y - right.y) <= relativeEpsilon * Math.max(Math.abs(left.y), Math.abs(right.y))))
```

Or alternatively this can be simplified using the logic from http://realtimecollisiondetection.net/blog/?p=89

```javascript
(Math.abs(left.x - right.x) <= Math.max(absoluteEpsilon, relativeEpsilon * Math.max(Math.abs(left.x), Math.abs(right.x)))) &&
(Math.abs(left.y - right.y) <= Math.max(absoluteEpsilon, relativeEpsilon * Math.max(Math.abs(left.y), Math.abs(right.y))))
```