[MAJOR] replace ultree with ebtree in wait-queues

The ultree code has been removed in favor of a simpler and
cleaner ebtree implementation. The eternity queue does not
need to exist anymore, and the pool_tree64 has been removed.

The ebtree node is stored in the task itself. The qlist list
header is still used by the run-queue, but will be able to
disappear once the run-queue uses ebtree too.
diff --git a/include/types/task.h b/include/types/task.h
index e0bbd6d..6b56547 100644
--- a/include/types/task.h
+++ b/include/types/task.h
@@ -2,7 +2,7 @@
   include/types/task.h
   Macros, variables and structures for task management.
 
-  Copyright (C) 2000-2007 Willy Tarreau - w@1wt.eu
+  Copyright (C) 2000-2008 Willy Tarreau - w@1wt.eu
   
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
@@ -25,8 +25,8 @@
 #include <sys/time.h>
 
 #include <common/config.h>
+#include <common/eb32tree.h>
 #include <common/mini-clist.h>
-#include <import/tree.h>
 
 /* values for task->state */
 #define TASK_IDLE	0
@@ -35,7 +35,7 @@
 /* The base for all tasks */
 struct task {
 	struct list qlist;              /* chaining in the same queue; bidirectionnal but not circular */
-	struct ultree *wq;		/* NULL if unqueued, or back ref to the carrier node in the WQ */
+	struct eb32_node eb;		/* ebtree node used to hold the task in the wait queue */
 	int state;			/* task state : IDLE or RUNNING */
 	struct timeval expire;		/* next expiration time for this task, use only for fast sorting */
 	void (*process)(struct task *t, struct timeval *next);	/* the function which processes the task */