Update config.c

Fix bug in configGetCommand function: get correct masterauth value.
redis-trib: don't load cluster config from nodes in FAIL state.
Cluster: new command CLUSTER FLUSHSLOTS.

It's just a simpler way to CLUSTER DELSLOTS with all the slots as
arguments, in order to obtain a node without assigned slots for
reconfiguration.
Cluster: node replication role change handle improved.

The code handling a master that turns into a slave or the contrary was
improved in order to avoid repeating the same operations. Also
the readability and conceptual simplicity was improved.
Cluster: turn old master into a replica of node that failed over.

So when the failing master node is back in touch with the cluster,
instead of remaining unused it is converted into a replica of the
new master, ready to perform the fail over if the new master node
will fail at some point.

Note that as a side effect clients with stale configuration are now
not an issue as well, as the node converted into a slave will not
accept queries but will redirect clients accordingly.
Cluster: add sender flags in cluster bus messages header.

Sender flags were not propagated for the sender, but only for nodes in
the gossip section. This is odd and in the next commits we'll need to
get updated flags for the sender node, so this commit adds a new field
in the cluster messages header.

The message header is the same size as we reused some free space that
was marked as 'unused' because of alignment concerns.
Cluster: new flag PROMOTED introduced.

A slave node set this flag for itself when, after receiving authorization
from the majority of nodes, it turns itself into a master.

At the same time now this flag is tested by nodes receiving a PING
message before reconfiguring after a failover event. This makes the
system more robust: even if currently there is no way to manually turn
a slave into a master it is possible that we'll have such a feature in
the future, or that simply because of misconfiguration a node joins the
cluster as master while others believe it's a slave. This alone is now
no longer enough to trigger reconfiguration as other nodes will check
for the PROMOTED flag.

The PROMOTED flag is cleared every time the node is turned back into a
replica of some other node.
Cluster: master node must clear its hash slots when turning into a slave.

When a master turns into a slave after a failover event, make sure to
clear the assigned slots before setting up the replication, as a slave
should never claim slots in an explicit way, but just take over the
master slots when replacing its master.
Cluster: clear the PROMOTED slave directly into clusterSetMaster().

This way we make sure every time a master is turned into a replica
the flag will be cleared.
Cluster: comment no longer in sync with code removed.
redis-trib: load info about importing/migrating slots from node.
redis-trib: initial support to fix "open" slots.

Open slots are slots found in importing or migrating slot when a
cluster check is performed.
Cluster: move slotToKeyFlush() to emptyDb().

This way we are sure to destroy the slot->key map every time we destroy
the DB, for instance when reloading a DB due to replication.
redis-trib: fix conditional otherwise always true.
redis-trib: ignore slaves when resharding.
redis-trib: fixed type has_flags? -> has_flag.
redis-trib: added some more output for check.
redis-trib: fixed ClusterNode migrating/importing slots detection.
redis-trib: added cluster_error method to add errors.
redis-trib: fix open slot correction.

Slot zero was hardcoded (!)