lib: child_process spawn handle ENOENT correctly

child_process spawn wasn't handlig ENOENT correctly on Windows.
This is half a fix for test-child-process-cwd.js.
The other half is going into libuv.
build: add libicu i18n support

Adds a --with-icu-path= switch to the configure script.  Requires that
the user checks out the copy of libicu that's bundled with chromium to
a fixed directory.  It's still a little rough around the edges but it
works.

Fixes #6371.
tls: fix handling of asterisk in SNI context

Wildcard server names should not match subdomains.

Quote from RFC2818:

   ...Names may contain the wildcard
   character * which is considered to match any single domain name
   component or component fragment. E.g., *.a.com matches foo.a.com but
   not bar.foo.a.com. f*.com matches foo.com but not bar.com.

fix #6610
openssl: add assembly for aes and gcm
doc: document 'error' event for stream.Writable

fix #5255
doc: mention execArgv in setupMaster
benchmark: fixate `ciphers` in tls benchmarks

Benchmark should always use the same cipher in order to be truthful.
tls_wrap: use writev when possible

Try writing multiple chunks from NodeBIO if possible.
crypto: fix moving read head

Fix various possible stalls of read head (i.e. try moving it after every
write head update).

NOTE: This is actually backported from `bud`.
child_process: don't crash process on internal ops

1. Swallow errors when sending internal NODE_HANDLE_ACK messages, so
   they don't crash the process.
2. Queue process.disconnect() if there are any pending queued messages.

Fixes test-child-process-fork-net2.js on win.
http: DELETE shouldn't default to chunked encoding
build: Ignore gyp-generated files on android

The android generator for gyp currently doesn't support
--generator-output - this makes embedding node.js as project dependency
difficult for android projects.

Note: the generated files in deps/uv should be ignored in libuv's
.gitignore
build: ./configure pass positional args to gyp

use `--` to specify the arguments you want to pass directly to gyp.

for example: `./configure -- --no-parallel -Dsome_define=foo`

fixes #6370
build: pass --no-parallel by default to gyp

gyp by default now tries to process gyp files in parallel by using
python's multiprocessing module, but it has problems on oddball
platforms. We don't have many files or complex dependency chains that
would benefit from parallel processing so disable by deafult

fixes #6640
Merge remote-tracking branch 'upstream/v0.10'

Conflicts:
	lib/tls.js
	src/node.js
build: older pythons don't support ternary if
crypto: support GCM authenticated encryption mode.

This adds two new member functions getAuthTag and setAuthTag that
are useful for AES-GCM encryption modes. Use getAuthTag after
Cipheriv.final, transmit the tag along with the data and use
Decipheriv.setAuthTag to have the encrypted data verified.
node: follow specification, zero-fill ArrayBuffers

Fixes #6664
test: fix create-file test fixture

This was failing if the file didn't already exist.

Fixes unit tests on Windows:

* test\simple\test-http-curl-chunk-problem.js
* test\simple\test-pipe-file-to-http.js
src: only access stack of defined errors

Avoid segmentation fault when `undefined` is thrown