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.
Cluster test: set config epochs when creating clusters.
Cluster: better comment for clusterSendFailoverAuthIfNeeded() epoch test.
Cluster: fix an error message when logging failover auth denied.
Scripting: Fix regression from #1118

The new check-for-number behavior of Lua arguments broke
users who use large strings of just integers.

The Lua number check would convert the string to a number, but
that breaks user data because
Lua numbers have limited precision compared to an arbitrarily
precise number wrapped in a string.

Regression fixed and new test added.

Fixes #1118 again.
Merge pull request #1804 from mattsta/lua-regression-1118

Scripting: Fix regression from #1118
Scripting: Fix for a #1118 regression simplified.

It is more straightforward to just test for a numerical type avoiding
Lua's automatic conversion. The code is technically more correct now,
however Lua should automatically convert to number only if the original
type is a string that "looks like a number", and not from other types,
so practically speaking the fix is identical AFAIK.
Cluster test: rewrite config when resetting nodes.
Cluser test: write multiple keys in unit 03.

The write-failover-read test is better if we write 100 keys so that we
are sure all the nodes are affected by the write.
Fix semantics of Lua calls to SELECT.

Lua scripts are executed in the context of the currently selected
database (as selected by the caller of the script).

However Lua scripts are also free to use the SELECT command in order to
affect other DBs. When SELECT is called frm Lua, the old behavior, before
this commit, was to automatically set the Lua caller selected DB to the
last DB selected by Lua. See for example the following sequence of
commands:

    SELECT 0
    SET x 10
    EVAL "redis.call('select','1')" 0
    SET x 20

Before this commit after the execution of this sequence of commands,
we'll have x=10 in DB 0, and x=20 in DB 1.

Because of the problem above, there was a bug affecting replication of
Lua scripts, because of the actual implementation of replication. It was
possible to fix the implementation of Lua scripts in order to fix the
issue, but looking closely, the bug is the consequence of the behavior
of Lua ability to set the caller's DB.

Under the old semantics, a script selecting a different DB, has no simple
ways to restore the state and select back the previously selected DB.
Moreover the script auhtor must remember that the restore is needed,
otherwise the new commands executed by the caller, will be executed in
the context of a different DB.

So this commit fixes both the replication issue, and this hard-to-use
semantics, by removing the ability of Lua, after the script execution,
to force the caller to switch to the DB selected by the Lua script.

The new behavior of the previous sequence of commadns is to just set
X=20 in DB 0. However Lua scripts are still capable of writing / reading
from different DBs if needed.

WARNING: This is a semantical change that will break programs that are
conceived to select the client selected DB via Lua scripts.

This fixes issue #1811.