Sentinel: handle SRI_PROMOTED flag correctly.

Lack of check of the SRI_PROMOTED flag caused Sentienl to act with the
promoted slave turned into a master during failover like if it was a
normal instance.

Normally this problem was not apparent because during real failovers the
old master is down so the bugged code path was not entered, however with
manual failovers via the SENTINEL FAILOVER command, the problem was
easily triggered.

This commit prevents promoted slaves from getting reconfigured, moreover
we now explicitly check that during a failover the slave turning into a
master is the one we selected for promotion and not a different one.
Sentinel test: add manual failover test.
Sentinel: send hello messages ASAP after config change.

Eventual configuration convergence is guaranteed by our periodic hello
messages to all the instances, however when there are important notices
to share, better make a phone call. With this commit we force an hello
message to other Sentinal and Redis instances within the next 100
milliseconds of a config update, which is practically better than
waiting a few seconds.
Sentinel test: unit 02, avoid some time related false positives.
Sentinel test: tolerate larger delays in init tests.
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!