relay: avoid printing NULL
bindlisten: call getaddrinfo with SOCK_STREAM or SOCK_DGRAM

On Solaris, setting ai_socktype to 0 results in resolution failure.  The
interweb seems to suggest the standard requires ai_socktype to be
SOCK_STREAM or SOCK_DGRAM (e.g. not 0).  Therefore, just loop over the
two to build up the listener sockets.  Darwin/BSD for some reason just
allows 0 (heck, why not, it's handy), but perhaps Linux doesn't like it
too much either, perhaps causing issue #22.