MINOR: init: process all initcalls in order at boot time

main() now iterates over all initcall stages at boot time. This will allow
to move init code from constructors to initcalls.
diff --git a/src/haproxy.c b/src/haproxy.c
index 2c42a70..184225d 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -75,6 +75,7 @@
 #include <common/config.h>
 #include <common/defaults.h>
 #include <common/errors.h>
+#include <common/initcall.h>
 #include <common/memory.h>
 #include <common/mini-clist.h>
 #include <common/namespace.h>
@@ -2733,6 +2734,15 @@
 	int pidfd = -1;
 
 	setvbuf(stdout, NULL, _IONBF, 0);
+
+	/* process all initcalls in order of potential dependency */
+	RUN_INITCALLS(STG_PREPARE);
+	RUN_INITCALLS(STG_LOCK);
+	RUN_INITCALLS(STG_ALLOC);
+	RUN_INITCALLS(STG_POOL);
+	RUN_INITCALLS(STG_REGISTER);
+	RUN_INITCALLS(STG_INIT);
+
 	init(argc, argv);
 	signal_register_fct(SIGQUIT, dump, SIGQUIT);
 	signal_register_fct(SIGUSR1, sig_soft_stop, SIGUSR1);