Add redisConnectFd() and redisFreeKeepFd()

These allows for easier integration of hiredis with external
code that wants to manage its fds, say for instance in a pool.

Closes #223
Fix "host cannot be resolved test" test

Closes #186
Libuv: Fix compile warnings and C++ compatability

Closes #189
Add new redisAppendFormatedCommand with tests

Closes #202
Define redisLibuvAttach as static

Closes #206
Define _XOPEN_SOURCE for NetBSD

This is backported from
https://github.com/antirez/redis/commit/289942b6259670fe3dcfaffdd0135c27f14c61c0
Upgrade sds to latest version

SDS is now broken out of Redis into its own project, so include
the latest version from the SDS repo.

This is a backport of the Redis commit doing the same to the bundled hiredis:
https://github.com/antirez/redis/commit/320fa02b9b48ee1c63d88db6344fc0d328e24853
Add missing license and copyright for adapters

This is a backport of
https://github.com/antirez/redis/commit/d01aad329c259a7276c448cee6696b04dfa6f8c1
Fix Makefile test to use more compatible syntax

The existing way is not compatible with a lot of shells, including most
bash installations, because the echos that generates the configuration
sent to redis-server doesn't expand the escapes. Adding '-e' to the
echo works under bash, but breaks on the Travis CI server.

This is my attempt to find an alternative that works everywhere.
[committer note: it doesn't work under Solaris make, but the Makefile
was already broken under Solaris make.  Solaris users must use gmake.]

Closes #224 and Closes #221
Fix build under Solaris

Solaris doesn't define the TCP options we try to set.  Let's
ignore those under Solaris.

Closes #207