Fix InvalidStateError for non-text local files.

Fixes a regression introduced when XDomainRequest support was added in
2eeb2057b2a058a15f9b4d155a4650dcab4ef070.  XDomainRequest only supports
request.responseText, not request.response, but XMLHttpRequest throws an
error if request.responseText is read for non-text response types.

A status code of 0 can mean either a local file was accessed, or there
was an error.  The response is checked to see if the error flag was set:

* In the case of request.responseType being "text" or "",
  request.responseText should be "".  Unfortunately it’s impossible to
  distinguish between an empty local text file and an error state, but
  wanting to load empty local files seems rare.
  XDomainRequest doesn’t have a responseType and it only has
  responseText, so we handle it here too.

* For other response types, request.response should be null.  At the
  moment, Safari 7.0.5 doesn’t respect this, e.g. the response will be a
  zero-length blob for the "blob" response type if the local file wasn’t
  found, but this seems to be fixed as of WebKit r171650.
Fix a few imports.
Replace substring with slice.

Slice is shorter and more intuitive: negative arguments are treated as
being relative to the end of the string, similar to arrays.

The only place it made sense to keep substring was in
d3_locale_numberFormat, where the first argument can be negative but
substring automatically treats this as zero.
Workaround for Chrome touchmove issue 412723.

Fixes #2013.
Fix #2040: parsing time zone offsets.

There was a bug when parsing positive time zone offsets with a non-zero
number of minutes: the use of Math.floor on negative numbers rounded in
the wrong direction.  Replacing Math.floor with (x | 0) correctly
truncates positive and negative values.
Update to JSDom 1.0.0

To fix this issue : https://github.com/petkaantonov/bluebird/issues/291
Fix #2043: selection.enter.size.
Merge remote-tracking branch 'origin/enter-size' into 3.4.12
Merge remote-tracking branch 'origin/fix-timezone-parse' into 3.4.12
Merge remote-tracking branch 'origin/fix-xhr-notext' into 3.4.12
Merge remote-tracking branch 'origin/slice' into 3.4.12
Merge remote-tracking branch 'origin/fix-imports' into 3.4.12
Save two minified bytes.
Merge branch 'fix-zoom-touch-chrome' into 3.4.12
Bump version.
Add d3.zip target.
d3.svg.axis: avoid setting invalid transform attr.

Fixes #1968.  For example, when switching from a linear scale to a
logarithmic scale, some of the exiting ticks might be positioned at
Infinity in the new scale (zero and negative numbers).  This can cause a
warning to be logged in the console due to the resulting invalid
transform attribute.  The warning doesn’t prevent the rest of the axis
from functioning normally (even though it is logged as an “error”), but
it is preferable to avoid setting invalid attributes.