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.