ipv6: Set IPV6_V6ONLY on listen socket.

Otherwise it attempts to take over ipv4 port
which fails if the ipv4 was initialized previously.

Reported-by: Guillaume Lelarge
win32: Don't set SO_REUSEADDR on listen socket.

According to Postgres src/backend/libpq/pqcomm.c:

/*
 * Without the SO_REUSEADDR flag, a new postmaster can't be started
 * right away after a stop or crash, giving "address already in use"
 * error on TCP ports.
 *
 * On win32, however, this behavior only happens if the
 * SO_EXLUSIVEADDRUSE is set. With SO_REUSEADDR, win32 allows multiple
 * servers to listen on the same address, resulting in unpredictable
 * behavior. With no flags at all, win32 behaves as Unix with
 * SO_REUSEADDR.
 */