BUG/MEDIUM: task/h2: add an idempotent task removal fucntion

Previous commit 3ea351368 ("BUG/MEDIUM: h2: Remove the tasklet from the
task list if unsubscribing.") uncovered an issue which needs to be
addressed in the scheduler's API. The function task_remove_from_task_list()
was initially designed to remove a task from the running tasklet list from
within the scheduler, and had to be used in h2 to abort pending I/O events.
However this function was not designed to be idempotent, occasionally
causing a double removal from the tasklet list, with the second doing
nothing but affecting the apparent tasks count and making haproxy use
100% CPU on some tests consisting in stopping the client during some
transfers. The h2_unsubscribe() function can sometimes be called upon
stream exit after an error where the tasklet was possibly already
removed, so it.

This patch does 2 things :
  - it renames task_remove_from_task_list() to
    __task_remove_from_tasklet_list() to discourage users from calling
    it. Also note the fix in the naming since it's a tasklet list and
    not a task list. This function is still uesd from the scheduler.
  - it adds a new, idempotent, task_remove_from_tasklet_list() function
    which does nothing if the task is already not in the tasklet list.

This patch will need to be backported where the commit above is backported.
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 959bcfb..b6c2c80 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -5182,7 +5182,7 @@
 		sw = param;
 		if (h2s->send_wait == sw) {
 			sw->events &= ~SUB_CALL_UNSUBSCRIBE;
-			task_remove_from_task_list((struct task *)h2s->send_wait->task);
+			task_remove_from_tasklet_list((struct task *)h2s->send_wait->task);
 			h2s->send_wait = NULL;
 			LIST_DEL(&h2s->list);
 			LIST_INIT(&h2s->list);
@@ -5270,7 +5270,7 @@
 
 	list_for_each_entry_safe(h2s, h2s_back, &h2c->sending_list, sending_list) {
 		LIST_DEL_INIT(&h2s->sending_list);
-		task_remove_from_task_list((struct task *)h2s->send_wait->task);
+		task_remove_from_tasklet_list((struct task *)h2s->send_wait->task);
 		h2s->send_wait->events |= SUB_RETRY_SEND;
 		h2s->send_wait->events &= ~SUB_CALL_UNSUBSCRIBE;
 	}