Don't call freeaddrinfo() when getaddrinfo() fails

POSIX is somewhat unclear here, but doing so segfaults on some
platforms.  Hat tip Kamil Slowikowski @slowkow.

Instead print a more detailed error message using gai_strerror().

[Cherry-picked from patch submitted to upstream klib.]