Test: AOF rewrite during write load.
Test: enable latency monitor in the default config.

This way as a side effect of running the test we also stress the latency
monitor data collection.
LATENCY HISTORY returns empty array if no data is available.

Previously we returned an error.
LATENCY command / monitor basic tests.
Test: more reliable AOF rewrite test under write load.
Fix typo in LATENCY DOCTOR output.
Fix OBJECT arity

Previously, the command definition for the OBJECT command specified
a minimum of two args (and that it was variadic), which meant that
if you sent this:

OBJECT foo

When cluster was enabled, it would result in an assertion/SEGFAULT
when Redis was attempting to extract keys.

It appears that OBJECT is not variadic, and only ever takes 3 args.

https://gist.github.com/michael-grunder/25960ce1508396d0d36a
Merge pull request #1870 from michael-grunder/object_arity

Fix OBJECT arity
RDB: load string objects directly as EMBSTR objects when possible.
PubSub clients refactoring and new PUBSUB flag.

The code tested many times if a client had active Pub/Sub subscriptions
by checking the length of a list and dictionary where the patterns and
channels are stored. This was substituted with a client flag called
REDIS_PUBSUB that is simpler to test for. Moreover in order to manage
this flag some code was refactored.

This commit is believed to have no effects in the behavior of the
server.
Variadic PING with support for Pub/Sub.

PING can now be called with an additional arugment, behaving exactly
like the ECHO command. PING can now also be called in Pub/Sub mode (with
one more more subscriptions to channels / patterns) in order to trigger
the delivery of an asynchronous pong message with the optional payload.

This fixes issue #420.
tryObjectEncoding(): use shared objects with maxmemory and non-LRU policy.

In order to make sure every object has its own private LRU counter, when
maxmemory is enabled tryObjectEncoding() does not use the pool of shared
integers. However when the policy is not LRU-based, it does not make
sense to do so, and it is much better to save memory using shared
integers.
PING: backward compatible error for wrong number of args.
Test: small integer sharing depends on maxmemory policy.
Test: Pub/Sub PING.
Cluster test: test that writes are retained during failovers.

In the test we use WAIT when the master and slave are up, and only later the
partition is created killing the master, so we are sure we don't incur
in failure modes that may lose writes in this test: the goal here is to
make sure that the elected slave was replicating correctly with the
master.
redis-trib: allow to reshard in non-interactive way.

The introduction of --from --to --slots --yes options allow to reshard
from cli in an automated way from scripts. The code is ugly and needs
refactoring as soon as we get it in RC / stable release.
Cluster: fix redis-trib --from all.
Cluster test: unit 04, consistency during resharding.
Cluster test: use larger keyspace in resharding test.