MAJOR: threads/applet: Handle multithreading for applets

A global lock has been added to protect accesses to the list of active
applets. A process mask has also been added on each applet. Like for FDs and
tasks, it is used to know which threads are allowed to process an
applet. Because applets are, most of time, linked to a session, it should be
sticky on the same thread. But in all cases, it is the responsibility of the
applet handler to lock what have to be protected in the applet context.
diff --git a/src/flt_spoe.c b/src/flt_spoe.c
index 9543f8f..aa3f37a 100644
--- a/src/flt_spoe.c
+++ b/src/flt_spoe.c
@@ -1930,7 +1930,7 @@
 	struct session     *sess;
 	struct stream      *strm;
 
-	if ((appctx = appctx_new(&spoe_applet)) == NULL)
+	if ((appctx = appctx_new(&spoe_applet, tid_bit)) == NULL)
 		goto out_error;
 
 	appctx->ctx.spoe.ptr = pool_alloc_dirty(pool2_spoe_appctx);