try connecting to all possible values returned from getaddrinfo

if getaddrinfo returns multiple values, we try to connect to each one
until the first succeeds. we block while doing that, but we probably
already did in getaddrinfo.

however if getaddrinfo returns exactly one value, we still use a
nonblocking connect.

so, if someone want to make sure the connect function doesn't block,
he can use a numeric IP address.