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
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.
ROLE command added.

The new ROLE command is designed in order to provide a client with
informations about the replication in a fast and easy to use way
compared to the INFO command where the same information is also
available.
ROLE output improved for slaves.

Info about the replication state with the master added.
Merge pull request #1669 from mattsta/blpop-internally-added-keys

Fix blocking operations from missing new lists
Merge pull request #1743 from mattsta/cygwin-compile-fix

Cygwin compile fix
Cluster: cluster_my_epoch added to CLUSTER INFO output.
Cluster test: check master -> slave role switch.
Cluster test: unit 02 should wait for failover.
Cluster test: 02 unit more reliable waiting for slave sync.
Cluster test: new unit 03, failover loop stress testing.
Cluster test: added show-redis-logs command in the interactive console.
Cluster test: better failover detection in unit 03.
Cluster test: unit 03, check epochs correctness.
Cluster: log when a master denies a failover auth.
Cluster: log configEpoch updates to myself.
Cluster: log granted failover authorizations.