This is a slightly oddly-shaped change which lays important groundwork
for the future.
* Firstly, it creates a table of address families, currently not very
interestingly since there's only one, but this will be an essential
tool for adding IPv6 support later.
* Secondly, it turns the peer module's `sock' into a global vector
`udpsock' of UDP sockets, possibly one for each of the supported
address families. There's no real change here, because there's only
one address family known, but the `port' command has grown an
address-family argument in case they have different ports. To make
this work, each peer now keeps track of the index of the socket it
should use for transmitting messages.