MEDIUM: server: split the address and the port into two different fields

Keeping the address and the port in the same field causes a lot of problems,
specifically on the DNS part where we're forced to cheat on the family to be
able to keep the port. This causes some issues such as some families not being
resolvable anymore.

This patch first moves the service port to a new field "svc_port" so that the
port field is never used anymore in the "addr" field (struct sockaddr_storage).
All call places were adapted (there aren't that many).
diff --git a/src/server.c b/src/server.c
index 1551f72..8aaf218 100644
--- a/src/server.c
+++ b/src/server.c
@@ -1062,6 +1062,7 @@
 
  skip_name_resolution:
 			newsrv->addr = *sk;
+			newsrv->svc_port = get_host_port(sk);
 			newsrv->xprt  = newsrv->check.xprt = newsrv->agent.xprt = xprt_get(XPRT_RAW);
 
 			if (!protocol_by_family(newsrv->addr.ss_family)) {
@@ -2807,7 +2808,7 @@
 			chunk_appendf(msg, ", ");
 
 		/* collecting data currently setup */
-		current_port = get_host_port(&s->addr);
+		current_port = s->svc_port;
 
 		/* check if PORT change is required */
 		port_change_required = 0;
@@ -2848,7 +2849,7 @@
 		/* applying PORT changes if required and update response message */
 		if (port_change_required) {
 			/* apply new port */
-			set_host_port(&s->addr, new_port);
+			s->svc_port = new_port;
 
 			/* prepare message */
 			chunk_appendf(msg, "port changed from '");