Cluster: new option to work with partial slots coverage.
Cluster: claim ping_sent time even if we can't connect.

This fixes a potential bug that was never observed in practice since
what happens is that the asynchronous connect returns ok (to fail later,
calling the handler) every time, so a ping is queued, and sent_ping
happens to always be populated.

Howver technically connect(2) with a non blocking socket may return an
error synchronously, so before this fix the code was not correct.
Unix domain sockets incorrectly listed as IPv6.
anetPeerToString() refactoring and more explicit checks.

Related to PR #2010.
anetPeerToString(): make unix sockets distinguishable.

Following the CLIENT LIST output format, we prefix the unix socket
address with a "/" so that it is different than an IPv4/6 address.
This makes parsing simpler.

Related to #2010.
Fix hiredis getaddrinfo leak

Fixed in Redis by 1a5e5b6, but since that part of code
is largely copy/paste from Redis, the fix needs to be
ported over too.

Closes #2012