MINOR: protocol: retrieve the family-specific fields from the family

We now take care of retrieving sock_family, l3_addrlen, bind(),
addrcmp(), get_src() and get_dst() from the protocol family and
not just the protocol itself. There are very few places, this was
only seldom used. Interestingly in sock_inet.c used to rely on
->sock_family instead of ->sock_domain, and sock_unix.c used to
hard-code PF_UNIX instead of using ->sock_domain.

Also it appears obvious we have something wrong it the protocol
selection algorithm because sock_domain is the one set to the custom
protocols while it ought to be sock_family instead, which would avoid
having to hard-code some conversions for UDP namely.
diff --git a/src/sock.c b/src/sock.c
index 9431e75..3e414a8 100644
--- a/src/sock.c
+++ b/src/sock.c
@@ -363,7 +363,7 @@
 	int ns_namelen = 0;
 	int ret = -1;
 
-	if (!rx->proto->addrcmp)
+	if (!rx->proto->fam->addrcmp)
 		return -1;
 
 	if (rx->proto->sock_type == SOCK_DGRAM)
@@ -397,7 +397,7 @@
 #ifdef USE_NS
 		    (!ns_namelen || strcmp(rx->settings->netns->node.key, xfer_sock->namespace) == 0) &&
 #endif
-		    rx->proto->addrcmp(&xfer_sock->addr, &rx->addr) == 0)
+		    rx->proto->fam->addrcmp(&xfer_sock->addr, &rx->addr) == 0)
 			break;
 		xfer_sock = xfer_sock->next;
 	}