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
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