test: support flexibly setting custom task options

Add a single TEST_ENTRY_CUSTOM hook that can be used to override task
entry defaults. Different tests can have different timeouts depending on
what is appropriate for each test. A separate TEST_OUTPUT_ENTRY hook is
no longer necessary.

In order to support per-task timeouts, the timeout field has been moved
into the task_entry_t struct. The default (5000) is now set as part of
TEST_ENTRY.
test: set getaddrinfo_fail timeout to 10000

getaddrinfo_fail can sometimes take slightly longer than the default
timeout of 5000. Set its timeout to 10000 to compensate, but leave the
timeout of all other tests at the default.
fs: `uv__cloexec()` opened fd

Every file descriptor opened using libuv should be automatically marked
as CLOEXEC to prevent it from leaking to a child process. Note that
since we are opening fds in a thread pool, there is a possible race
condition between `uv_spawn()` and the `open()` + `uv__cloexec()`. The
rwlock was added to avoid it.

see https://github.com/joyent/node/issues/6905
test: fix build on windows

disable spawn_fs_open
gitignore: root test ignores at /test
test: build spawn_fs_open only on unixes
gyp: qualify `library` variable

Use prefixed variable name for better control over dependencies.
unix, win: add uv_udp_set_multicast_interface()
doc: describe signal send emulation on windows

Signals don't exist on Windows, but libuv emulates the behaviour of
several Unix signals. This wasn't documented, and the existing
documentation for signal reception emulation on Windows was worded as if
it applied to signal sending, which it does not.
test: fix udp multicast interface test
unix: fix uv_tcp_nodelay return value in case of error

Fixes #1102
unix: call setgoups before calling setuid/setgid

Partial fix for #1093
build: skip vcvarsall if already set up

Without this, running vcbuild repeatedly for some time will cause errors with msbuild saying the command line is too long (due to concatenation happening in vcvarsall).
include: mark close_cb field as private
unix, windows: map EFBIG errno
unix: correct error when calling uv_shutdown twice

Before this one of the requests was left as a ghost in the system.
See https://github.com/JuliaLang/julia/issues/5793
unix: correct error when calling uv_shutdown twice

This is a backport of a284b90 for v0.10 branch
windows: fix building on MinGW

The crtdbg.h header was added in c0716b3d, but MinGW does not have this
header present on the system. This commit takes the same approach of
2684f876a and just ignores this header and functionality on MinGW
windows: always initialize uv_process_t

The unix implementation of uv_spawn always starts out with a
uv__handle_init, but the windows implementation sometimes bails out
early before calling uv__handle_init. This means that uv_close on a
failed uv_spawn will always succeed on unix but sometimes fail on
windows.

This commit lifts the initialization of the uv_process_t above all of
the error checking to ensure that uv_close will always work when
uv_spawn returns an error.
include: expose libuv version in header files