Fix eval usage in tests to conform with eval semantics
Merge remote-tracking branch 'upstream/unstable' into unstable
Fix lack of SA_ONSTACK under Cygwin

Fixes #232
Fix lack of strtold under Cygwin

Renaming strtold to strtod then casting
the result is the standard way of dealing with
no strtold in Cygwin.
redis-trib fix: use MIGRATE REPLACE when fixing slots.

This fixes issue #1765.
Fix blocking operations from missing new lists

Behrad Zari discovered [1] and Josiah reported [2]: if you block
and wait for a list to exist, but the list creates from
a non-push command, the blocked client never gets notified.

This commit adds notification of blocked clients into
the DB layer and away from individual commands.

Lists can be created by [LR]PUSH, SORT..STORE, RENAME, MOVE,
and RESTORE.  Previously, blocked client notifications were
only triggered by [LR]PUSH.  Your client would never get
notified if a list were created by SORT..STORE or RENAME or
a RESTORE, etc.

Blocked client notification now happens in one unified place:
  - dbAdd() triggers notification when adding a list to the DB

Two new tests are added that fail prior to this commit.

All test pass.

Fixes #1668

[1]: https://groups.google.com/forum/#!topic/redis-db/k4oWfMkN1NU
[2]: #1668
redis-trib fix improved: move keys from N nodes to owner.
Fix an error in redis-trib where we always talk with same node.

While iterating the list of nodes we want to set the slot as stable in
the current node, not always in the first node of the list.
Test: dump.tcl fixed for RESTORE new error msg.
Test: AOF test false positive when running in slow hosts.

The bug was triggered by running the test with Valgrind (which is a lot
slower and more sensible to timing issues) after the recent changes
that made Redis more promptly able to reply with the -LOADING error.
Cluster: slave validity factor is now user configurable.

Check the commit changes in the example redis.conf for more information.
Tag every log line with role.

Every log contains, just after the pid, a single character that provides
information about the role of an instance:

S - Slave
M - Master
C - Writing child
X - Sentinel
redisLogFromHandler() format changed to match new logs format.
Fixed typo in word avarege in result message of --intrinsic-latency analyzer
Cluster test: more reliable 01-faildet unit.

Do things in a sequence that prevents failover during failure detection.
Cluster test: move basic read/write test into a procedure.
Cluster test: basic failover unit added.
Fix test framework to detect proper server PID

Previously the PID format was:
[PID] Timestamp

But it recently changed to:
PID:X Timestamp

The tcl testing framework was grabbing the PID from \[\d+\], but
that's not valid anymore.

Now we grab the pid from "PID: <PID>" in the part of Redis startup
output to the right of the ASCII logo.
Sentinel example config: explain you don't need to specify slaves.
Cluster test: catch FLUSHALL errors on node reset.

FLUSHALL will fail on read-only slaves, but there the command is not
needed in order to reset the instance with CLUSTER RESET so errors can
be ignored.