Fix the Windows header mess

Don't include windows.h and wsockcompat.h from config.h but only when
needed.

Don't define _WINSOCKAPI_ manually. This was apparently done to stop
windows.h from including winsock.h which is a problem if winsock2.h
wasn't included first. But on MinGW, this causes compiler warnings.
Define WIN32_LEAN_AND_MEAN instead which has the same effect.

Always use the compiler-defined _WIN32 macro instead of WIN32.
diff --git a/xmlmodule.c b/xmlmodule.c
index 7f70f9c..e3a8bd6 100644
--- a/xmlmodule.c
+++ b/xmlmodule.c
@@ -301,8 +301,9 @@
 #endif /* HAVE_SHLLOAD */
 #endif /* ! HAVE_DLOPEN */
 
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(__CYGWIN__)
 
+#define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 
 /*