Abstract libuv implementation

Structures the libuv implementation to allow for a plugable
BSD style socket implementation to allow for other IO Managers
diff --git a/config.w32 b/config.w32
index d73acc1..78f2fe0 100644
--- a/config.w32
+++ b/config.w32
@@ -98,6 +98,8 @@
     "src\\core\\lib\\iomgr\\gethostname_sysconf.cc " +
     "src\\core\\lib\\iomgr\\iocp_windows.cc " +
     "src\\core\\lib\\iomgr\\iomgr.cc " +
+    "src\\core\\lib\\iomgr\\iomgr_custom.cc " +
+    "src\\core\\lib\\iomgr\\iomgr_internal.cc " +
     "src\\core\\lib\\iomgr\\iomgr_posix.cc " +
     "src\\core\\lib\\iomgr\\iomgr_uv.cc " +
     "src\\core\\lib\\iomgr\\iomgr_windows.cc " +
@@ -106,12 +108,16 @@
     "src\\core\\lib\\iomgr\\lockfree_event.cc " +
     "src\\core\\lib\\iomgr\\network_status_tracker.cc " +
     "src\\core\\lib\\iomgr\\polling_entity.cc " +
-    "src\\core\\lib\\iomgr\\pollset_set_uv.cc " +
+    "src\\core\\lib\\iomgr\\pollset.cc " +
+    "src\\core\\lib\\iomgr\\pollset_custom.cc " +
+    "src\\core\\lib\\iomgr\\pollset_set.cc " +
+    "src\\core\\lib\\iomgr\\pollset_set_custom.cc " +
     "src\\core\\lib\\iomgr\\pollset_set_windows.cc " +
     "src\\core\\lib\\iomgr\\pollset_uv.cc " +
     "src\\core\\lib\\iomgr\\pollset_windows.cc " +
+    "src\\core\\lib\\iomgr\\resolve_address.cc " +
+    "src\\core\\lib\\iomgr\\resolve_address_custom.cc " +
     "src\\core\\lib\\iomgr\\resolve_address_posix.cc " +
-    "src\\core\\lib\\iomgr\\resolve_address_uv.cc " +
     "src\\core\\lib\\iomgr\\resolve_address_windows.cc " +
     "src\\core\\lib\\iomgr\\resource_quota.cc " +
     "src\\core\\lib\\iomgr\\sockaddr_utils.cc " +
@@ -123,19 +129,24 @@
     "src\\core\\lib\\iomgr\\socket_utils_uv.cc " +
     "src\\core\\lib\\iomgr\\socket_utils_windows.cc " +
     "src\\core\\lib\\iomgr\\socket_windows.cc " +
+    "src\\core\\lib\\iomgr\\tcp_client.cc " +
+    "src\\core\\lib\\iomgr\\tcp_client_custom.cc " +
     "src\\core\\lib\\iomgr\\tcp_client_posix.cc " +
-    "src\\core\\lib\\iomgr\\tcp_client_uv.cc " +
     "src\\core\\lib\\iomgr\\tcp_client_windows.cc " +
+    "src\\core\\lib\\iomgr\\tcp_custom.cc " +
     "src\\core\\lib\\iomgr\\tcp_posix.cc " +
+    "src\\core\\lib\\iomgr\\tcp_server.cc " +
+    "src\\core\\lib\\iomgr\\tcp_server_custom.cc " +
     "src\\core\\lib\\iomgr\\tcp_server_posix.cc " +
     "src\\core\\lib\\iomgr\\tcp_server_utils_posix_common.cc " +
     "src\\core\\lib\\iomgr\\tcp_server_utils_posix_ifaddrs.cc " +
     "src\\core\\lib\\iomgr\\tcp_server_utils_posix_noifaddrs.cc " +
-    "src\\core\\lib\\iomgr\\tcp_server_uv.cc " +
     "src\\core\\lib\\iomgr\\tcp_server_windows.cc " +
     "src\\core\\lib\\iomgr\\tcp_uv.cc " +
     "src\\core\\lib\\iomgr\\tcp_windows.cc " +
     "src\\core\\lib\\iomgr\\time_averaged_stats.cc " +
+    "src\\core\\lib\\iomgr\\timer.cc " +
+    "src\\core\\lib\\iomgr\\timer_custom.cc " +
     "src\\core\\lib\\iomgr\\timer_generic.cc " +
     "src\\core\\lib\\iomgr\\timer_heap.cc " +
     "src\\core\\lib\\iomgr\\timer_manager.cc " +