Don't propagate SAVE.

This is a general fix (check that dirty delta is positive) but actually
should have as the only effect fixing the SAVE propagation to
AOF and slaves.
On AOF end of file, truncate the AOF to last valid command.

Recently we introduced the ability to load truncated AOFs, but
unfortuantely the support was broken since the server, after loading the
truncated AOF, continues appending to the file that is corrupted at the
end. The problem is fixed only in the next AOF rewrite.

This commit fixes the issue by truncating the AOF to the last valid
opcode, and aborting if it is not possible to truncate the file
correctly.
Seek at the end of AOF after truncate call.

It is not clear if files open in append only mode will automatically fix
their offset after a truncate(2) operation. This commit makes sure that
we reposition the AOF file descriptor offset at the end of the file
after a truncated AOF is loaded and trimmed to the last valid command.
Better truncated AOF loading tests.

Now there are tests to write more data after loading a truncated AOF,
testing that the loaded data is correct, appending more, and testing
again.
Cluster: new option to work with partial slots coverage.
Cluster: claim ping_sent time even if we can't connect.

This fixes a potential bug that was never observed in practice since
what happens is that the asynchronous connect returns ok (to fail later,
calling the handler) every time, so a ping is queued, and sent_ping
happens to always be populated.

Howver technically connect(2) with a non blocking socket may return an
error synchronously, so before this fix the code was not correct.
Unix domain sockets incorrectly listed as IPv6.
Merge pull request #2010 from yossigo/unixdomain-info-string

Unix domain sockets incorrectly listed as IPv6.
anetPeerToString() refactoring and more explicit checks.

Related to PR #2010.
anetPeerToString(): make unix sockets distinguishable.

Following the CLIENT LIST output format, we prefix the unix socket
address with a "/" so that it is different than an IPv4/6 address.
This makes parsing simpler.

Related to #2010.
Fix hiredis getaddrinfo leak

Fixed in Redis by 1a5e5b6, but since that part of code
is largely copy/paste from Redis, the fix needs to be
ported over too.

Closes #2012
Merge pull request #2014 from mattsta/fix-hiredis-leak

Fix hiredis getaddrinfo leak
First version of release scripts.
02_upload_tarball.sh fixes.
03_release_hash.sh: fix commit stage.
Quick, wrong, fix for create_tarball script.
03_release_hahs.sh: let me edit before committing.
Fix 03_release_hash.sh commit message.
Linenoise lib updated.
DEBUG POPULATE two args form implemented.

The old DEBUG POPULATE form for automatic creation of test keys is:

    DEBUG POPULATE <count>

Now an additional form is available:

    DEBUG POPULATE <count> <prefix>

When prefix is not specified, it defaults to "key", so the keys are
named incrementally from key:0 to key:<count-1>. Otherwise the specified
prefix is used instead of "key".

The command is useful in order to populate different Redis instances
with key names guaranteed to don't collide. There are other debugging
uses, for example it is possible to add additional N keys using a count
of N and a random prefix at every call.