check for socket errors and set $!

This is needed for non-reachable IP. The error is set at the socket
level ($! = "No route to host"), but not at the fd.

In these case, we maybe want another Hijk::Error constant, instead
of using CONNECT_TIMEOUT.