MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit()

Instead of exporting a number of pools and having to manually delete
them in deinit() or to have dedicated destructors to remove them, let's
simply kill all pools on deinit().

For this a new function pool_destroy_all() was introduced. As its name
implies, it destroys and frees all pools (provided they don't have any
user anymore of course).

This allowed to remove 4 implicit destructors, 2 explicit ones, and 11
individual calls to pool_destroy(). In addition it properly removes
the mux_pt_ctx pool which was not cleared on exit (no backport needed
here since it's 1.9 only). The sig_handler pool doesn't need to be
exported anymore and became static now.
diff --git a/src/haproxy.c b/src/haproxy.c
index 6ec9bcc..96715ee 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2500,7 +2500,6 @@
 	cfg_unregister_sections();
 
 	deinit_log_buffers();
-	deinit_trash_buffers();
 
 	protocol_unbind_all();
 
@@ -2534,20 +2533,7 @@
 	}
 
 	vars_prune(&global.vars, NULL, NULL);
-
-	deinit_buffer();
-
-	pool_destroy(pool_head_stream);
-	pool_destroy(pool_head_session);
-	pool_destroy(pool_head_connection);
-	pool_destroy(pool_head_connstream);
-	pool_destroy(pool_head_requri);
-	pool_destroy(pool_head_task);
-	pool_destroy(pool_head_capture);
-	pool_destroy(pool_head_pendconn);
-	pool_destroy(pool_head_sig_handlers);
-	pool_destroy(pool_head_hdr_idx);
-	pool_destroy(pool_head_http_txn);
+	pool_destroy_all();
 	deinit_pollers();
 } /* end deinit() */