Log the server's listening address
Clean up tcp_listen()'s addrinfo loop some
Ignore error setting socket option SO_REUSEADDR

Shouldn't fail.  If it fails, but bind() works, the failure doesn't
matter.  If bind() fails, we can just as well report that failure
instead of setsockopt()'s.
Fix wildcard bind to bind both IPv6 and IPv4 on Windows & BSD

We rely on AF_INET6 wildcard bind() binding the AF_INET port, too,
i.e. IPV6_V6ONLY off.  This should be the default (RFC 3493 section
5.3).  Unfortunately, it isn't on Windows and BSD.

On such a system, an AF_INET6 wildcard bind only accepts connections
from IPv6 addresses.  Thus, IPv4 doesn't work when getaddrinfo()
returns an AF_INET6 address first (which it should do when the system
has an IPv6 address configured).

Switch off IPV6_V6ONLY explicitly instead of relying on the default.

Unfortunately, OpenBSD does not support switching it off.  To be
addressed in the next commit.

Thanks to Hannah Schroeter <hannah@pond.sub.org> for advice and
prototype code.
Fix wildcard bind to bind IPv4 or else IPv6 on OpenBSD

OpenBSD refuses to implement IPV6_V6ONLY, in violation of RFC 3493.
The only way to bind both IPv4 and IPv4 there is two separate sockets.
Requires more surgery than I can do now.

With our single socket, we can't have both IPv6 and IPv6.  Prefer
IPv4, but if that doesn't work, do IPv6.

To prefer IPv6 instead, put 'listen_addr "::"' into econfig.

Thanks to Hannah Schroeter <hannah@pond.sub.org> for advice and
prototype code.
Log connection attempts
Document OpenBSD and Linux lossage in listen_addr doc string
Drop extra blank line in output of pconfig
Use IPv4 format for IPv4-mapped addresses

For instance, use "127.0.0.1" for IPv4 loopback instead of
"::ffff:127.0.0.1".

Simplifies use of econfig key privip: plain dotted decimal now just
works regardless of IPv6 use, no need to add the IPv4-mapped form.

Also affects how addresses are logged and shown to players, and nation
selector ip.  Nicer that way.