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.
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
Fixed typo in word avarege in result message of --intrinsic-latency analyzer
Small typo fixed
More trailing spaces in sentinel.c removed.
fix issue 1787
Scripting: better Lua number -> string conversion in luaRedisGenericCommand().

The lua_to*string() family of functions use a non optimal format
specifier when converting integers to strings. This has both the problem
of the number being converted in exponential notation, which we don't
use as a Redis return value when floating point numbers are involed,
and, moreover, there is a loss of precision since the default format
specifier is not able to represent numbers that must be represented
exactly in the IEEE 754 number mantissa.

The new code handles it as a special case using a saner conversion.

This fixes issue #1118.
Regression test for issue #1118.
Fixed dbuf variable scope in luaRedisGenericCommand().

I'm not sure if while the visibility is the inner block, the fact we
point to 'dbuf' is a problem or not, probably the stack var isx
guaranteed to live until the function returns. However obvious code is
better anyway.
Tests for min-slaves-* feature.
Don't process min-slaves-to-write for slaves.

Replication is totally broken when a slave has this option, since it
stops accepting updates from masters.

This fixes issue #1434.
Merge pull request #1788 from zionwu/unstable

fix issue 1787
Merge pull request #1789 from yoav-steinberg/fix_eval_in_tests

Fix eval usage in tests to conform with eval semantics
Merge pull request #1780 from badboy/patch-8

Small typo fixed
Merge pull request #1772 from andygrunwald/typo-avarege-average

Fixed typo in word avarege in result message of --intrinsic-latency analyzer
Cluster: SET-CONFIG-EPOCH should update currentEpoch.

SET-CONFIG-EPOCH, used by redis-trib at cluster creation time, failed to
update the currentEpoch, making it possible after a failover for a
server to set its configEpoch to a value smaller than the current one
(since configEpochs are obtained using currentEpoch).

The bug totally break the Redis Cluster algorithms and protocols
allowing for permanent split brain conditions about the slots
configuration as shown in issue #1799.
Cluster: check that configEpoch never goes back.

Since there are ways to alter the configEpoch outside of the failover
procedure (for exampel CLUSTER SET-CONFIG-EPOCH and via the configEpoch
collision resolution algorithm), make always sure, before replacing our
configEpoch with a new one, that it is greater than the current one.