CLEANUP: remove the now unused fdtab direct I/O callbacks

They were all left to NULL since last commit so we can safely remove them
all now and remove the temporary dual polling logic in pollers.
diff --git a/src/ev_kqueue.c b/src/ev_kqueue.c
index 556abcc..3d12e36 100644
--- a/src/ev_kqueue.c
+++ b/src/ev_kqueue.c
@@ -139,25 +139,20 @@
 	for (count = 0; count < status; count++) {
 		fd = kev[count].ident;
 
+		if (!fdtab[fd].owner)
+			continue;
+
 		fdtab[fd].ev &= FD_POLL_STICKY;
 		if (kev[count].filter ==  EVFILT_READ) {
 			if (FD_ISSET(fd, fd_evts[DIR_RD])) {
-				if (!fdtab[fd].owner)
-					continue;
 				fdtab[fd].ev |= FD_POLL_IN;
-				if (fdtab[fd].cb[DIR_RD].f)
-					fdtab[fd].cb[DIR_RD].f(fd);
 			}
 		} else if (kev[count].filter ==  EVFILT_WRITE) {
 			if (FD_ISSET(fd, fd_evts[DIR_WR])) {
-				if (!fdtab[fd].owner)
-					continue;
 				fdtab[fd].ev |= FD_POLL_OUT;
-				if (fdtab[fd].cb[DIR_WR].f)
-					fdtab[fd].cb[DIR_WR].f(fd)
 			}
 		}
-		if (fdtab[fd].iocb && fdtab[fd].owner && fdtab[fd].ev)
+		if (fdtab[fd].iocb && fdtab[fd].ev)
 			fdtab[fd].iocb(fd);
 	}
 }