lib,src: fix spawnSync ignoring its 'env' option

PR-URL: https://github.com/joyent/node/pull/8546
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
test: add test for spawnSync() env option

PR-URL: https://github.com/joyent/node/pull/8845
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
build: i18n: Autodownload ICU, Add a test.

This is to implement
https://github.com/joyent/node/issues/7676#issuecomment-64704230

* make `--with-intl=none` the default
 * Download, verify (md5), unpack ICU's zip if not there
 * update docs
* add a test

There's a "list" of URLs being used, but right now only the
first is picked up. The logic works something like this:

* if there is no directory `deps/icu`,
 * if no zip file (currently `icu4c-54_1-src.zip`),
  * download zip file (icu-project.org -> sf.net)
 * verify the MD5 sum of the zipfile
  * if bad, print error and exit
 * unpack the zipfile into `deps/icu`
* if `deps/icu` now exists, use it, else fail with help text

Also:
* refactor some code into tools/configure.d/nodedownload.py
* add `intl-none` option for `vcbuild.bat`

To rebuild `deps/icu-small` - (not currently checked in)
```
bash tools/icu/prepare-icu-source.sh
```

Reduce space by about 1MB with ICU 54 (over without this patch).
Also trims a few other source files, but only conditional on the exact ICU
version used. This is to future-proof - a file that is unneeded now may
be needed in future ICUs.
build: i18n: add `configure --with-icu-source=...`

Usage:
 * `--with-icu-source=/path/to/my/other/icu`
 * `--with-icu-source=/path/to/icu54.zip`
 * `--with-icu-source=/path/to/icu54.tgz`
 * `--with-icu-source=http://example.com/icu54.tar.bz2`

this fixes srl295/node#11
build: i18n: add   --with-icu-locales option

this lets you choose which locales are used in the `small-icu` case

Example:

  configure --with-intl=small-icu  --with-icu-locales=tlh,grc,nl

Note that the unit test tests/simple/test-intl.js hasn't been updated
yet.

(Also note that as of this writing, neither Klingon nor Ancient Greek
are in upstream CLDR data. Serving suggestion only.)

This completely and totally fixes #10 :octocat:
build: i18n: fix target builds

With dependency fix as suggested by @misterdjules
fixes srl295/node#12
build: support --icu-data-dir configure switch