Optimise d3.geo.area.

This incorporates two enhancements:

1. A simpler formulation for the area of a spherical triangle with one
   vertex at the south pole.
2. Instead of calling atan2 for every point, we use the identity:
     ∑ arg(z) = arg(∏ z),
   where z is a complex number, and only call atan2 once for each
   polygon, instead opting for a cheaper complex number multiplication
   for each point.

This is around 3x faster than the old implementation as measured by the
included benchmark.
Use captured references for document and window.

This avoids an inconsistency (discussed in #1044) when using D3 inside Node.js,
where D3 internally creates a JSDOM document during initialization, but then
subsequently depends on the current global document, which is not exposed. D3
now always refers to the global document at the time of initialization, and
does not depend on the current global document or window.
Fix rounded format specifier; fixes #1042.
Fix a couple of edge cases.
Fix wheel events; fixes #1048 #1047.

Some time ago the hidden div scroll trick stopped working. But, this went nearly
unnoticed because most browsers are fairly well behaved since WebKit fixed bug
https://bugs.webkit.org/show_bug.cgi?id=40441 back in June 2010. All that
remained broken was Firefox, who adopted the newer W3C "wheel" event standard.
This commit removes the old div hack, and does better support detection to
determine the most standards-based approach to listening for wheel events.
Use µ rather than μ.

That is, MICRO SIGN (\xb5) rather than GREEK SMALL LETTER MU (\u03bc).
Avoid Prototype’s broken array.filter.

While I abhor Prototype’s practice of replacing native methods with broken non-
native ones, this is a painless fix that allows us to use d3.geom.voronoi on
nytimes.com, which shamefully continues to use Prototype.
Bump up line-to-pixel multiplier to 120.
Add test case for tiny Polygon area.
Add d3.geo.length.
Merge branch 'force_layout_exports_drag' of https://github.com/GerHobbelt/d3 into fix-force-drag
Make sure drag behavior is instantiated.
Capture d3, as well.

This allows multiple instances of D3 to be loaded, or the d3 variable to be
renamed without breaking code. Fixes #1058.
Merge branch 'force_layout_keeps_userbits_intact' of https://github.com/GerHobbelt/d3 into fix-force-drag
Sort null nodes at the end.

Previously, null nodes were passed to the comparator and were indistinguishable
from non-null nodes with no bound data. For consistency with other selection
operators that skip null nodes, it seems preferrable to put null nodes at the
end of the selection rather than passing them to the comparator. Fixes #881.
Fix for invalid axis.orient. Fixes #905.
Don’t expose d3_functor for link properties.

Fixes #895.
Merge branch 'fix-sort-null' into 3.0.6
Merge branch 'fix-force-drag' into 3.0.6
Merge branch 'capture-globals' into 3.0.6