MAJOR: polling: Use active_tasks_mask instead of tasks_run_queue

tasks_run_queue is the run queue size. It is a global variable. So it is
underoptimized because we may be lead to consider there are active tasks for a
thread while in fact all active tasks are assigned to the other threads. So, in
such cases, the polling loop will be evaluated many more times than necessary.

Instead, we now check if the thread id is set in the bitfield active_tasks_mask.

Another change has been made in process_runnable_tasks. Now, we always limit the
number of tasks processed to 200.

This is specific to threads, no backport is needed.
diff --git a/src/haproxy.c b/src/haproxy.c
index deec51b..8f33e26 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2307,7 +2307,7 @@
 			break;
 
 		/* expire immediately if events are pending */
-		if (fd_cache_num || tasks_run_queue || signal_queue_len || applets_active_queue)
+		if (fd_cache_num || (active_tasks_mask & tid_bit) || signal_queue_len || applets_active_queue)
 			next = now_ms;
 
 		/* The poller will ensure it returns around <next> */