Use all results returned by getaddrinfo(3), if necessary

I have seen getaddrinfo(3) return IPv6 addresses before IPv4 addresses
when a hostname resolves to both. It is still more common for Redis to
listen only on a v4 address than a v6 address or both a v4 and a v6
address. When getaddrinfo(3) would returns a v6 address that Redis is
not listening on, the user would see ECONNREFUSED or similar without
this patch. This is clearly undesirable behavior.

Additionally, per the getaddrinfo(3) man page, we should try to use the
addresses it returns in the order they are returned.
Add test for resolving a host to an address

The IPv6 change in b146d74 made a bunch of tests fail because they could
not connect to 'localhost'. They could not connect because only the
first result from getaddrinfo(3) was used, which happened to be the IPv6
localhost address. This commit changes those tests to use 127.0.0.1 and
adds a test that explicitly tests that the client can resolve localhost.
Add tests for connecting to IPv4 and IPv6
Only run IPv4/IPv6 tests for the Ruby driver

EventMachine doesn't appear to support IPv6, nor does hiredis.
Add comment about AI_ADDRCONFIG
Mention :url option in README

Closes #391.
Run GC from test setup

I have seen a test run where the "connected_clients" field in the INFO output
changed from 15 to 3 over a statement where GC might run. This change should
prevent that from happening again.
Merge pull request #396 from redis/dup2

Add ability to duplicate connections.
Add Redis#dup to CHANGELOG
Fix off by 2 error in EXEC reply handling

The EXEC reply should have the same number of replies as there are commands in
the MULTI. This line of code expected the MULTI and EXEC commands themselves to
be part of the futures array, but they are not.

Note that this only surfaces for Redis versions < 2.6.5, because that is when
the EXECABORT error reply was introduced. Also see: antirez/redis@41f0f92.
Merge branch 'master' into ipv6

Conflicts:
	test/internals_test.rb
Merge pull request #394 from redis/ipv6

Don't hardcode Ruby connection to IPv4
Add IPv6 support to CHANGELOG
Bump to 3.0.7
Run CI on 2.1.0
Merge pull request #406 from fukayatsu/ci-on-ruby-2-1-0

Run CI on 2.1.0
tests for "operation not permitted" error messages
Merge remote-tracking branch 'upstream/master'