Update anetResolve to resolve AF_INET6 as well.

Change the getaddrinfo(3) hints family from AF_INET to AF_UNSPEC to
allow resolution of IPv6 addresses as well as IPv4 addresses. The
function will return the IP address of whichever address family is
preferenced by the operating system. Most current operating systems
will preference AF_INET6 over AF_INET.

Unfortunately without attempting to establish a connection to the
remote address we can't know if the host is capable of using the
returned IP address. It might be desirable to have anetResolve
accept an additional argument specifying the AF_INET/AF_INET6 address
the caller would like to receive. Currently though it does not appear
as though the anetResolve function is ever used within Redis.
Update anetTcpAccept to handle AF_INET6 addresses.

Change the sockaddr_in to sockaddr_storage which is capable of storing
both AF_INET and AF_INET6 sockets. Uses the sockaddr_storage ss_family
to correctly return the printable IP address and port.
Update anetPeerToString to handle AF_INET6 addrs.

Change the sockaddr_in to sockaddr_storage which is capable of storing
both AF_INET and AF_INET6 sockets. Uses the sockaddr_storage ss_family
to correctly return the printable IP address and port.
Update REDIS_CLUSTER_IPLEN to INET6_ADDRSTRLEN.

Change REDIS_CLUSTER_IPLEN to INET6_ADDRSTRLEN so that the clusterNode
ip character buffer is big enough to hold an IPv6 address.
Update node2IpString to handle AF_INET6 addresses.

Change the sockaddr_in to sockaddr_storage which is capable of storing
both AF_INET and AF_INET6 sockets. Uses the sockaddr_storage ss_family
to correctly return the printable IP address and port.

Function makes the assumption that the buffer is of at least
REDIS_CLUSTER_IPLEN bytes in size.
Update clusterCommand to handle AF_INET6 addresses

Changes the sockaddr_in to a sockaddr_storage. Attempts to convert the
IP address into an AF_INET or AF_INET6 before returning an "Invalid IP
address" error. Handles converting the sockaddr from either AF_INET or
AF_INET6 back into a string for storage in the clusterNode ip field.
Mark ip string buffers which could be reduced.

In two places buffers have been created with a size of 128 bytes which
could be reduced to INET6_ADDRSTRLEN to still hold a full IP address.
These places have been marked as they are presently big enough to handle
the needs of storing a printable IPv6 address.
Expand ip char buffers which are too small for v6.

Increase the size of character buffers being used to store printable IP
addresses so that they can safely store IPv6 addresses.
Mark places that might want changing for IPv6.

Any places which I feel might want to be updated to work differently
with IPv6 have been marked with a comment starting "IPV6:".

Currently the only comments address places where an IP address is
combined with a port using the standard : separated form. These may want
to be changed when printing IPv6 addresses to wrap the address in []
such as

	[2001:db8::c0:ffee]:6379

instead of

	2001:db8::c0:ffee:6379

as the latter format is a technically valid IPv6 address and it is hard
to distinguish the IPv6 address component from the port unless you know
the port is supposed to be there.
Change anetTcpGenericConnect to use AF_UNSPEC.

This allows anetTcpGenericConnect to try to connect to AF_INET6
addresses in addition to any resolved AF_INET addresses.
Add static anetV6Only() function.

This function sets the IPV6_V6ONLY option to 1 to use separate stack
IPv6 sockets.
Add anetTcp6Server() function.

Refactor the common code from anetTcpServer into internal function which
can be used by both anetTcpServer and anetTcp6Server.
Add port6, bindaddr6 & ip6fd item to server struct

The additional structure items are added into the logical places in the
redisServer struct.
Set defaults for newly added redisServer fields.

Set the default port6, bindaddr6 and ip6fd to 0, NULL and -1
respectively. The port6 = 0 default has the effect of disabling IPv6 by
default, this has been chosen to minimise the impact to existing
installations.
Setup IPv6 socket if port6 is specified.

Mimics the ipfd initialisation code for IPv4 service.
Add configuration parsing for port6 and bind6.

Use the same configuration options as IPv4 for IPv6 but with a 6
appended to the name. port => port6, bind => bind6.
Document port6 and bind6 config options.

Add commented port6 and bind6 options to default redis.conf file.
Fix calls to anetPeerToString() missing buffer size.
Cleanup main() and BACKTRACE mistaken pulled while rebasing.