child_process: add path to spawn ENOENT Error

Add a file property to the ENOENT Error returned from ChildProcess's
spawn function.

Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
querystring: custom encode and decode

Not all querystring are utf-8 encoding, make querystring can be used
to encode / decode `non-utf8` encoding string if necessary.

Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
build: disable v8 handle zapping

See also commit e7bfbaf.  Don't depend on deps/v8/build/features.gypi
to disable handle zapping, be explicit about it.

Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
http: Optimize queued client aborts

Avoid sending unsent data and destroying otherwise legitimate sockets
for requests that are aborted while still in the agent queue. This
reduces stress on upstream systems who will likely respond to the
request but client app already knows that it will be dropped on the
floor and also helps avoid killing keep-alive connections.
net: do not prefer IPv4 addresses during resolution.

Currently, the address resolution family defaults to IPv4. This
commit removes that preference, and instead attempts to resolve
to a family suitable for the host.
dns: expose getaddrinfo flags in JavaScript

Allow JavaScript DNS lookups to pass flags to getaddrinfo
in the C++ layer.