Remove dead code.

This line doesn’t appear to do anything useful, since the parent node is
now saved in the closure.  Previously, this line checked to see if
target.parentNode was null, since this would cause a crash when
computing the relative position.
Fix point-in-polygon for multiple polar rings.

Instead of detecting if any single polygon ring winds around a pole, we
consider the cumulative winding of all polygon rings together.  This is
consistent with the area calculation, which considers the cumulative
area total of all rings.

This fixes #1521: an issue with the Hammer Retroazimuthal projection,
which uses such a polygon with two rings, covering most of the globe.

In addition, drop the special handling of points at the south pole,
which might have been there to pass an incorrect test: a CCW triangle
touching the south pole, which was probably incorrectly thought to be
clockwise.  This fixes an issue with a “stripe” polygon rotated so that
a point is at the south pole, mentioned in #1453.
Use the scale as the tick key function.

Previously we were using string coercion as the key function for axis ticks.
However, when the stringified value of the tick does not fully capture the
representation (such as a date with millisecond precision, whose string form
only has second precision; fixes #1529), string coercion is insufficient.

Fortunately, there is an equivalently-simple key function for tick identity: the
scale! If the scale does not return a unique position for the given tick, then
the tick would be overlapping, so it serves perfectly as the key function.
Fix crash in ticks for empty d3.time.scale domain.

Fixes #1525. This was only an issue because the domain is extended by one
millisecond when it is empty (for an inclusive upper bound).
Merge remote-tracking branch 'origin/fix-geo-pip' into 3.3.4
Merge remote-tracking branch 'origin/fix-axis-tick-key' into 3.3.4
Merge remote-tracking branch 'origin/fix-time-degenerate-ticks' into 3.3.4
Merge branch '3.3.4'