Cluster: fixed a bug in clusterSendPublish() due to inverted statements.

The code used to copy the header *after* the 'hdr' pointer was already
switched to the new buffer. Of course we need to do the reverse.
Cluster: use non-blocking I/O for the cluster bus.
Cluster: clusterReadHandler() reworked to be more correct and simpler to follow.
A mistype fixed
mistype fixed
Cluster: always use safe iteartors to iterate server.cluster->nodes.
Cluster: don't save HANDSHAKE nodes in nodes.conf.
Cluster: CLUSTER SAVECONFIG command added.
redis-cli: fix big keys search when the key no longer exist.

The code freed a reply object that was never created, resulting in a
segfault every time randomkey returned a key that was deleted before we
queried it for size.
Cluster: free HANDSHAKE nodes after node_timeout.

Handshake nodes should turn into normal nodes or be freed in a
reasonable amount of time, otherwise they'll keep accumulating if the
address they are associated with is not reachable for some reason.
Cluster: don't add an handshake node for the same ip:port pair multiple times.
Merge branch 'unstable' into unstable-sonar