Don’t generate empty polygons during clipping.

Fixes #1823; spurious closePath events were being generated for
degenerate polygons due to generation of empty polygons and rings in
rare cases.
Optimize interpolateString.
Only coalesce exact string matches.

If there are a lot of matching numbers, it’s faster to do direct string equality
comparisons than it is to coerce to a number and compare numerically.
Add d3.interpolateString benchmark.
Run each benchmark separately.
Merge remote-tracking branch 'origin/geo-empty-polygon' into 3.4.5
Merge branch '3.4.5'
Automatically rewritten for npm.