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