First draft of the win32 implementation of iomgr.

Caveats:
-) The win32 pollset isn't threadsafe (yet).
-) Only client code is implemented.
-) Only very simple code has been tested with it yet.
diff --git a/Makefile b/Makefile
index bd09415..fb46a93 100644
--- a/Makefile
+++ b/Makefile
@@ -1246,6 +1246,7 @@
     include/grpc/support/histogram.h \
     include/grpc/support/host_port.h \
     include/grpc/support/log.h \
+    include/grpc/support/log_win32.h \
     include/grpc/support/port_platform.h \
     include/grpc/support/slice.h \
     include/grpc/support/slice_buffer.h \
@@ -1408,6 +1409,7 @@
     src/core/iomgr/fd_posix.c \
     src/core/iomgr/iomgr.c \
     src/core/iomgr/iomgr_posix.c \
+    src/core/iomgr/iomgr_windows.c \
     src/core/iomgr/pollset_kick.c \
     src/core/iomgr/pollset_multipoller_with_poll_posix.c \
     src/core/iomgr/pollset_posix.c \
@@ -1417,9 +1419,12 @@
     src/core/iomgr/socket_utils_common_posix.c \
     src/core/iomgr/socket_utils_linux.c \
     src/core/iomgr/socket_utils_posix.c \
+    src/core/iomgr/socket_windows.c \
     src/core/iomgr/tcp_client_posix.c \
+    src/core/iomgr/tcp_client_windows.c \
     src/core/iomgr/tcp_posix.c \
     src/core/iomgr/tcp_server_posix.c \
+    src/core/iomgr/tcp_windows.c \
     src/core/iomgr/time_averaged_stats.c \
     src/core/iomgr/wakeup_fd_eventfd.c \
     src/core/iomgr/wakeup_fd_nospecial.c \
@@ -1534,6 +1539,7 @@
 src/core/iomgr/fd_posix.c: $(OPENSSL_DEP)
 src/core/iomgr/iomgr.c: $(OPENSSL_DEP)
 src/core/iomgr/iomgr_posix.c: $(OPENSSL_DEP)
+src/core/iomgr/iomgr_windows.c: $(OPENSSL_DEP)
 src/core/iomgr/pollset_kick.c: $(OPENSSL_DEP)
 src/core/iomgr/pollset_multipoller_with_poll_posix.c: $(OPENSSL_DEP)
 src/core/iomgr/pollset_posix.c: $(OPENSSL_DEP)
@@ -1543,9 +1549,12 @@
 src/core/iomgr/socket_utils_common_posix.c: $(OPENSSL_DEP)
 src/core/iomgr/socket_utils_linux.c: $(OPENSSL_DEP)
 src/core/iomgr/socket_utils_posix.c: $(OPENSSL_DEP)
+src/core/iomgr/socket_windows.c: $(OPENSSL_DEP)
 src/core/iomgr/tcp_client_posix.c: $(OPENSSL_DEP)
+src/core/iomgr/tcp_client_windows.c: $(OPENSSL_DEP)
 src/core/iomgr/tcp_posix.c: $(OPENSSL_DEP)
 src/core/iomgr/tcp_server_posix.c: $(OPENSSL_DEP)
+src/core/iomgr/tcp_windows.c: $(OPENSSL_DEP)
 src/core/iomgr/time_averaged_stats.c: $(OPENSSL_DEP)
 src/core/iomgr/wakeup_fd_eventfd.c: $(OPENSSL_DEP)
 src/core/iomgr/wakeup_fd_nospecial.c: $(OPENSSL_DEP)
@@ -1682,6 +1691,7 @@
 objs/$(CONFIG)/src/core/iomgr/fd_posix.o: 
 objs/$(CONFIG)/src/core/iomgr/iomgr.o: 
 objs/$(CONFIG)/src/core/iomgr/iomgr_posix.o: 
+objs/$(CONFIG)/src/core/iomgr/iomgr_windows.o: 
 objs/$(CONFIG)/src/core/iomgr/pollset_kick.o: 
 objs/$(CONFIG)/src/core/iomgr/pollset_multipoller_with_poll_posix.o: 
 objs/$(CONFIG)/src/core/iomgr/pollset_posix.o: 
@@ -1691,9 +1701,12 @@
 objs/$(CONFIG)/src/core/iomgr/socket_utils_common_posix.o: 
 objs/$(CONFIG)/src/core/iomgr/socket_utils_linux.o: 
 objs/$(CONFIG)/src/core/iomgr/socket_utils_posix.o: 
+objs/$(CONFIG)/src/core/iomgr/socket_windows.o: 
 objs/$(CONFIG)/src/core/iomgr/tcp_client_posix.o: 
+objs/$(CONFIG)/src/core/iomgr/tcp_client_windows.o: 
 objs/$(CONFIG)/src/core/iomgr/tcp_posix.o: 
 objs/$(CONFIG)/src/core/iomgr/tcp_server_posix.o: 
+objs/$(CONFIG)/src/core/iomgr/tcp_windows.o: 
 objs/$(CONFIG)/src/core/iomgr/time_averaged_stats.o: 
 objs/$(CONFIG)/src/core/iomgr/wakeup_fd_eventfd.o: 
 objs/$(CONFIG)/src/core/iomgr/wakeup_fd_nospecial.o: 
@@ -1849,6 +1862,7 @@
     src/core/iomgr/fd_posix.c \
     src/core/iomgr/iomgr.c \
     src/core/iomgr/iomgr_posix.c \
+    src/core/iomgr/iomgr_windows.c \
     src/core/iomgr/pollset_kick.c \
     src/core/iomgr/pollset_multipoller_with_poll_posix.c \
     src/core/iomgr/pollset_posix.c \
@@ -1858,9 +1872,12 @@
     src/core/iomgr/socket_utils_common_posix.c \
     src/core/iomgr/socket_utils_linux.c \
     src/core/iomgr/socket_utils_posix.c \
+    src/core/iomgr/socket_windows.c \
     src/core/iomgr/tcp_client_posix.c \
+    src/core/iomgr/tcp_client_windows.c \
     src/core/iomgr/tcp_posix.c \
     src/core/iomgr/tcp_server_posix.c \
+    src/core/iomgr/tcp_windows.c \
     src/core/iomgr/time_averaged_stats.c \
     src/core/iomgr/wakeup_fd_eventfd.c \
     src/core/iomgr/wakeup_fd_nospecial.c \
@@ -1980,6 +1997,7 @@
 objs/$(CONFIG)/src/core/iomgr/fd_posix.o: 
 objs/$(CONFIG)/src/core/iomgr/iomgr.o: 
 objs/$(CONFIG)/src/core/iomgr/iomgr_posix.o: 
+objs/$(CONFIG)/src/core/iomgr/iomgr_windows.o: 
 objs/$(CONFIG)/src/core/iomgr/pollset_kick.o: 
 objs/$(CONFIG)/src/core/iomgr/pollset_multipoller_with_poll_posix.o: 
 objs/$(CONFIG)/src/core/iomgr/pollset_posix.o: 
@@ -1989,9 +2007,12 @@
 objs/$(CONFIG)/src/core/iomgr/socket_utils_common_posix.o: 
 objs/$(CONFIG)/src/core/iomgr/socket_utils_linux.o: 
 objs/$(CONFIG)/src/core/iomgr/socket_utils_posix.o: 
+objs/$(CONFIG)/src/core/iomgr/socket_windows.o: 
 objs/$(CONFIG)/src/core/iomgr/tcp_client_posix.o: 
+objs/$(CONFIG)/src/core/iomgr/tcp_client_windows.o: 
 objs/$(CONFIG)/src/core/iomgr/tcp_posix.o: 
 objs/$(CONFIG)/src/core/iomgr/tcp_server_posix.o: 
+objs/$(CONFIG)/src/core/iomgr/tcp_windows.o: 
 objs/$(CONFIG)/src/core/iomgr/time_averaged_stats.o: 
 objs/$(CONFIG)/src/core/iomgr/wakeup_fd_eventfd.o: 
 objs/$(CONFIG)/src/core/iomgr/wakeup_fd_nospecial.o: