Sentinel: epoch introduced.

Sentinel state now includes the idea of current epoch and config epoch.
In the Hello message, that is now published both on masters and slaves,
a Sentinel no longer just advertises itself but also broadcasts its
current view of the configuration: the master name / ip / port and its
current epoch.

Sentinels receiving such information switch to the new master if the
configuration epoch received is newer and the ip / port of the master
are indeed different compared to the previos ones.
Sentinel: remove code not useful in the new design.
Sentinel: handle Hello messages received via slaves correctly.

Even when messages are received via the slave, we should perform
operations (like adding a new Sentinel) in the context of the master.
Sentinel: leadership handling changes WIP.

Changes to leadership handling.

Now the leader gets selected by every Sentinel, for a specified epoch,
when the SENTINEL is-master-down-by-addr is sent.

This command now includes the runid and the currentEpoch of the instance
seeking for a vote. The Sentinel only votes a single time in a given
epoch.

Still a work in progress, does not even compile at this stage.
Sentinel: epoch introduced in leader vote.
Sentinel: fix PUBLISH to masters and slaves.
Sentinel: allow to vote for myself.
Sentinel: wait some time between failover attempts.
Sentinel: +new-epoch events.
Sentinel: when starting failover seek for votes ASAP.
Sentinel: new failover algo, desync slaves and update config epoch.
Sentinel: added config-epoch to SENTINEL masters output.
Sentinel: change event name when converting master to slave.
Sentinel: receive Pub/Sub messages from slaves.
Sentinel: sentinelResetMaster() new flag to avoid removing set of sentinels.

This commit also removes some dead code and cleanup generic flags.
Sentinel: readd slaves back after a master reset.
Sentinel: fix no-down check in master->slave conversion code.
Sentinel: track role change time. Wait before reconfigurations.
Sentinel: make sure role_reported is always updated.
Sentinel: being a master and reporting as slave is considered SDOWN.