Support IPv6 addresses with scope IDs

The scope ID specifies the interface that the system should use when
sending packets to a link-local address. An example of an IPv6 address
with scope ID is "fe80::a00:27ff:fe84:be2%eth0".

Supporting this requires two major code changes:
* The scope ID is part of the sockaddr_in6 structure, not the in6_addr
structure. We therefore need to store socket addresses instead of host
addresses in nc_host_t. Note that since we store port numbers separately
(and we can have a port range instead of a single port), the port part
of the socket addresses stored in nc_host_t is undefined (0).
* In netcat_resolvehost we need to use getaddrinfo (resp. getnameinfo)
instead of inet_pton and gethostbyname (resp. inet_ntop and
gethostbyaddr), because only those functions support scope IDs.