Cluster: clusterCloseAllSlots() added.
Cluster: flush importing/migrating state when master is turned into slave.
Cluster: clarified a comment in clusterUpdateSlotsConfigWith().
Cluster: set slot error if we receive an update for a busy slot.

By manually modifying nodes configurations in random ways, it is possible
to create the following scenario:

A is serving keys for slot 10
B is manually configured to serve keys for slot 10

A receives an update from B (or another node) where it is informed that
the slot 10 is now claimed by B with a greater configuration epoch,
however A still has keys from slot 10.

With this commit A will put the slot in error setting it in IMPORTING
state, so that redis-trib can detect the issue.
Cluster: update node configEpoch on UPDATE messages.

The UPDATE message contains the configEpoch of the node configuration
advertised in the packet. Update it if needed.
redis-trib: create subcommand is now able to assign spare slaves.

Example: if the user will try to configure a cluster with 9 nodes,
asking for 1 slave for master, redis-trib will configure a 4 masters
cluster with 1 slave each as usually, but this time will assign the
spare node as a slave of one of the masters.
redis-trib: new subcommand 'call'. Exec command in all nodes.

Example:

./redis-trib.rb call 192.168.1.11:7000 config get cluster-node-timeout
redis-trib: call MIGRATE via r.client.call as fix for redis-rb API changes.

See issue #1593.

Thanks to @badboy for suggesting the direct client.call fix.