Inconsistent Variable Name

The parameter arglist is referenced as args halfway through the
function. Changed the parameter arglist to args.
Fixes for Windows

Windows does not support the %zd argument in printf. Added conditional
compile statement to allow Windows to compile with %u instead of %zd.
Also modified the conditional compile statement for zsys.c so the MSC
and MINGW32 will use _vscprintf.
Problem: win32 api calls in portable code

Technique of defining e.g. closesocket to work on POSIX boxes is
kind of horrid; this makes the code harder to copy and understand.
I'd rather be explicit about putting non-portable code into zsys.

Solution: define zsys_udp_close() to close (UDP) sockets.