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
fs: vectored IO API for filesystem read/write

This improves API consistency with uv_read and uv_write and may
improve efficiency for some uses. Vectored IO is emulated when the
requisite system calls are unavailable.