Cleanup include statements

Remove useless includes and add some preprocessor conditions for platform specific headers.
diff --git a/lib/client.c b/lib/client.c
index a52bb4c..4775555 100644
--- a/lib/client.c
+++ b/lib/client.c
@@ -23,7 +23,6 @@
 
 #ifdef WIN32
 #include <tchar.h>
-#include <io.h>
 #else
 #ifdef LWS_BUILTIN_GETIFADDRS
 #include <getifaddrs.h>
diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c
index 7f9d20e..8ce6074 100644
--- a/lib/libwebsockets.c
+++ b/lib/libwebsockets.c
@@ -23,7 +23,6 @@
 
 #if defined(WIN32) || defined(_WIN32)
 #include <tchar.h>
-#include <io.h>
 #include <mstcpip.h>
 #else
 #ifdef LWS_BUILTIN_GETIFADDRS
@@ -37,7 +36,9 @@
 #include <netdb.h>
 #endif
 
+#ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
+#endif
 
 #ifdef LWS_OPENSSL_SUPPORT
 int openssl_websocket_private_data_index;
diff --git a/lib/output.c b/lib/output.c
index 8188ec2..4b5d948 100644
--- a/lib/output.c
+++ b/lib/output.c
@@ -21,10 +21,6 @@
 
 #include "private-libwebsockets.h"
 
-#ifdef WIN32
-#include <io.h>
-#endif
-
 static int
 libwebsocket_0405_frame_mask_generate(struct libwebsocket *wsi)
 {
diff --git a/lib/parsers.c b/lib/parsers.c
index dcf1cdc..62be441 100644
--- a/lib/parsers.c
+++ b/lib/parsers.c
@@ -21,11 +21,6 @@
 
 #include "private-libwebsockets.h"
 
-#if defined(WIN32) || defined(_WIN32)
-#include <io.h>
-#endif
-
-
 unsigned char lextable[] = {
 	#include "lextable.h"
 };
diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h
index 3332106..e27c3c2 100644
--- a/lib/private-libwebsockets.h
+++ b/lib/private-libwebsockets.h
@@ -32,6 +32,9 @@
 
 #if _MSC_VER > 1000 || defined(_WIN32)
 #else
+#include <errno.h>
+#include <fcntl.h>
+#include <signal.h>
 #include <unistd.h>
 #include <strings.h>
 #endif
@@ -39,9 +42,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <signal.h>
 #include <limits.h>
 #ifdef __MINGW64__
 #else
@@ -53,7 +53,9 @@
 #endif
 #include <stdarg.h>
 
+#ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
+#endif
 
 #if defined(WIN32) || defined(_WIN32)
 #define LWS_NO_DAEMONIZE
@@ -79,7 +81,6 @@
 #endif
 #endif
 #include <winsock2.h>
-#include <ws2ipdef.h>
 #include <windows.h>
 #define LWS_INVALID_FILE INVALID_HANDLE_VALUE
 #else
diff --git a/lib/server.c b/lib/server.c
index bf9080a..7ff3350 100644
--- a/lib/server.c
+++ b/lib/server.c
@@ -24,7 +24,6 @@
 
 #if defined(WIN32) || defined(_WIN32)
 #include <tchar.h>
-#include <io.h>
 #else
 #ifdef LWS_BUILTIN_GETIFADDRS
 #include <getifaddrs.h>
diff --git a/lib/sha-1.c b/lib/sha-1.c
index e0ab4dc..e280345 100644
--- a/lib/sha-1.c
+++ b/lib/sha-1.c
@@ -32,7 +32,12 @@
  * implemented by Jun-ichiro itojun Itoh <itojun@itojun.org>
  */
 
+#include "private-libwebsockets.h"
+
+#ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
+#endif
+
 #if defined(WIN32) || defined(_WIN32)
 
 #ifndef BIG_ENDIAN