MEDIUM: dns: implement a DNS resolver

Implementation of a DNS client in HAProxy to perform name resolution to
IP addresses.

It relies on the freshly created UDP client to perform the DNS
resolution. For now, all UDP socket calls are performed in the
DNS layer, but this might change later when the protocols are
extended to be more suited to datagram mode.

A new section called 'resolvers' is introduced thanks to this patch. It
is used to describe DNS servers IP address and also many parameters.
diff --git a/src/haproxy.c b/src/haproxy.c
index a17a65d..b44b83a 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -102,6 +102,7 @@
 #include <proto/stream.h>
 #include <proto/signal.h>
 #include <proto/task.h>
+#include <proto/dns.h>
 
 #ifdef CONFIG_HAP_CTTPROXY
 #include <proto/cttproxy.h>
@@ -1102,6 +1103,10 @@
 	if (!hlua_post_init())
 		exit(1);
 
+	/* initialize structures for name resolution */
+	if (!dns_init_resolvers())
+		exit(1);
+
 #ifdef USE_51DEGREES
 	if (!LIST_ISEMPTY(&global._51d_property_names)) {
 		i = 0;