MINOR: fd: centralize poll timeout computation in compute_poll_timeout()

The 4 pollers all contain the same code used to compute the poll timeout.
This is pointless, let's centralize this into fd.h. This also gets rid of
the useless SCHEDULER_RESOLUTION macro which used to work arond a very old
linux 2.2 bug causing select() to wake up slightly before the timeout.
diff --git a/src/ev_select.c b/src/ev_select.c
index d248d6d..0f9b87e 100644
--- a/src/ev_select.c
+++ b/src/ev_select.c
@@ -160,25 +160,10 @@
 		writenotnull |= (*(((int*)tmp_evts[DIR_WR])+i) = *(((int*)fd_evts[DIR_WR])+i)) != 0;
 	}
 
-	delta_ms      = 0;
-	delta.tv_sec  = 0;
-	delta.tv_usec = 0;
-
-	if (!exp) {
-		delta_ms      = MAX_DELAY_MS;
-		delta.tv_sec  = (MAX_DELAY_MS / 1000);
-		delta.tv_usec = (MAX_DELAY_MS % 1000) * 1000;
-	}
-	else if (!tick_is_expired(exp, now_ms)) {
-		delta_ms = TICKS_TO_MS(tick_remain(now_ms, exp)) + SCHEDULER_RESOLUTION;
-		if (delta_ms > MAX_DELAY_MS)
-			delta_ms = MAX_DELAY_MS;
-		delta.tv_sec  = (delta_ms / 1000);
-		delta.tv_usec = (delta_ms % 1000) * 1000;
-	}
-	else
-		activity[tid].poll_exp++;
-
+	/* now let's wait for events */
+	delta_ms = compute_poll_timeout(exp);
+	delta.tv_sec  = (delta_ms / 1000);
+	delta.tv_usec = (delta_ms % 1000) * 1000;
 	gettimeofday(&before_poll, NULL);
 	status = select(maxfd,
 			readnotnull ? tmp_evts[DIR_RD] : NULL,