ROLE command: array len fixed for slave output.
Allow to call ROLE in LOADING state.
Cancel SHUTDOWN if initial AOF is being written

Fixes #1826 (and many other reports of the same problem)
Basic tests for the ROLE command.
Merge pull request #1829 from mattsta/stop-aof-dataloss

Cancel SHUTDOWN if initial AOF is being written
Cancel SHUTDOWN if initial AOF is being written

Fixes #1826 (and many other reports of the same problem)
hiredis: Update to latest version

This is hiredis f225c276be7fd0646019b51023e3f41566633dfe

This update includes all changes that diverged inside of Redis since
the last update.  This version also allows optional source address
binding for connections which we need for some Sentinel deployments.
Dummy zmalloc.h restored into deps/hiredis.
Add REDIS_BIND_ADDR access macro

We need to access (bindaddr[0] || NULL) in a few places, so centralize
access with a nice macro.
Sentinel: bind source address

Some deployments need traffic sent from a specific address.  This
change uses the same policy as Cluster where the first listed bindaddr
becomes the source address for outgoing Sentinel communication.

Fixes #1667
Use Redis updated sds.c for deps/hiredis.
Silence different signs comparison warning in sds.c.
Merge branch 'unstable' of github.com:/antirez/redis into unstable
Sentinel implementation of ROLE.
Sentinel test: more correct sentinels config reset.

In the initialization test for each instance we used to unregister the
old master and register it again to clear the config.
However there is a race condition doing this: as soon as we unregister
and re-register "mymaster", another Sentinel can update the new
configuration with the old state because of gossip "hello" messages.

So the correct procedure is instead, unregister "mymaster" from all the
sentinel instances, and re-register it everywhere again.
Add Travis CI
Add automated testing for creating clusters

This script creates many different cluster configurations
by varying the number of instances and replica counts
defined at cluster initialization time.  If any cluster
topology fails to converge successfully, the entire test fails.

This script currently works on my OS X system and in a Linux VM.
It's designed to work on a CI server so it just runs
in the background and the system will report if the script
fails.
Add Redis cluster test to CI

The more tests the better!