Add support for IPv6

This branch builds on the commits in pull request #60 to add IPv6 support, unfortunately I can't work out how to have github add a pull request against another pull request so unfortunately this one includes the commits from the addrinfo branch in pull request #60. If #60 is pulled first I can close and re-submit the this pull request, provided theres interest in it of course.

There is currently one part of redis which I've not yet touched with respect to IPv6 as I wanted to know how best to proceed.

The `anetTcpServer` function is currently used to create an IPv4 listening socket. This could be changed to create an IPv6 socket which then disables `V6ONLY` socket option so that it accepts IPv4 connections as well, seen in netstat as tcp46.

Some operating systems by default require separate stack sockets, such that you have to create an IPv4 socket and an IPv6 socket. These operating systems can usually be configured to allow dual-stack sockets, but it does require additional work by the administrator.

I believe separate sockets would be the desired implementation in redis. Were this the case then `anetTcpServer` would continue to return IPv4 sockets and another function `anetTcp6Server` would return IPv6 sockets. The IPv6 socket would then sit along side the `ipfd` descriptor as `ip6fd` or something similar.

Does this seem acceptable?