suppress external diff program when using git diff.
Cluster: added new API countKeysInSlot().

This is similar to getKeysInSlot() but just returns the number of keys
found in a given hash slot, without returning the keys.
Cluster: added stub for verifyClusterConfigWithData().

See the top-comment for the function in this commit for details about
what the function is supposed to do.
Cluster: use CountKeysInSlot() when we just need the count.
Cluster: fix case for getKeysInSlot() and countKeysInSlot().

Redis functions start in low case. A few functions about cluster were
capitalized the wrong way.
A comment in main() clarified.
Cluster: verifyClusterConfigWithData() implemented.
Cluster: new sub-command CLUSTER COUNTKEYSINSLOT.

The new sub-command uses the new countKeysInSlot() API and allows a
cluster client to get the number of keys for a given hashslot.
Cluster: use O(log(N)) algo for countKeysInSlot().
Cluster: validate slot number in CLUSTER COUNTKEYSINSLOT.
Cluster: no limits for the count parameter of CLUSTER GETKEYSINSLOT.

Not sure why I set a limit to 1 million keys, there is no reason for
this artificial limit, and anyway this is s a stupid limit because it is
already high enough to create latency issues. So let's the users shoot
on their feet because maybe they just actually know what they are doing.
Fix error "repl-backlog-size must be 1 or greater"

The parameter repl-backlog-size is not parsed correctly in the configuration file. argv[0] is parsed instead of argv[1].
Merge pull request #969 from serphen/unstable

Fix error "repl-backlog-size must be 1 or greater"
Cluster: new function clusterNodeDelFailureReport() for failure reports.

This is the missing part of the API that will be used to reimplement
failure detection of Cluster nodes.
Cluster: cleanup idle failure reports every time we remove one.

This is not very important as anyway when the function counting the
number of reports is called the cleanup is performed. However with this
change if only part of the nodes that reported the failure will report
the node is back ok, we'll cleanup the older entries ASAP. In complex
split net split scenarios, and when we are dealing with clusters having
nodes in the order of ~ 1000, this can save some CPU.
Cluster: invert two functions declarations in more natural order.
Set process name in ps output to make operations safer.

This commit allows Redis to set a process name that includes the binding
address and the port number in order to make operations simpler.

Redis children processes doing AOF rewrites or RDB saving change the
name into redis-aof-rewrite and redis-rdb-bgsave respectively.

This in general makes harder to kill the wrong process because of an
error and makes simpler to identify saving children.

This feature was suggested by Arnaud GRANAL in the Redis Google Group,
Arnaud also pointed me to the setproctitle.c implementation includeed in
this commit.

This feature should work on all the Linux, OSX, and all the three major
BSD systems.
Cluster: use the failure report API to reimplement failure detection.

The new system detects a failure only when there is quorum from masters.
Cluster: log the event when we clear the FAIL flag.
Cluster: a few random fixes to the new failure detection.