Fix connection detection logic.

The fact that we have socket back from IO::select, does not necessarily
mean that mean that we can actually ready and/or write to it.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
does it make this whole thing easier if we avoid doing a nonblocking connect here and just wrap a timeout around a blocking connect?