prevent uncaught broken pipe error
Backport fix for cursor-based iterator abstraction from PR #182.
Update CHANGELOG.
Merge remote-tracking branch 'github/pr/184' into v0.8
Porperly handle -ERR instead of +QUEUED inside MULTI ... EXEC.

Error responses such as -OOM or -ERR on invalid arguments in commands
are returned immediatly instead of +QUEUED when using a transaction,
which is a condition that had not been tested enough. This condition
led to a bug in which Predis was not invalidating the transaction, so
when trying to create a new transaction Redis returned a "-ERR MULTI
calls can not be nested".

This commit fixes #187.
Update CHANGELOG.
Reword CHANGELOG.
Rewrite pear packager script.

We still use Onion's package.ini for the configuration of the package
to keep things simple, but we might switch to a more compact solution
in the future since we do not really need much of its features.
Update CHANGELOG and bump VERSION.
Back to development.

[ci skip]
Minor changes in checks for transaction support in server profile.
Update CHANGELOG.

[ci skip]
Implement PING in PUB/SUB loop abstraction for Redis 3.0.0.
Update CHANGELOG.
Use same strategy for both client-side sharding and redis-cluster.

This change is possible because, after a few changes in redis-cluster,
our default cluster strategy used for client side sharding and the one
used for redis-cluster turned out to be exactly the same, except for
the hashing function used to calculate distribution.

Actually some checks used to enforce correctness are redundant in the
context of redis-cluster (e.g. the one used to make sure that keys in
requests performing cross-keys operations will hash to the same slot,
which is performed by the server) so we could also add a more dumb and
permissive cluster strategy that relies on checks performed by Redis.

The only difference between the client-side sharding strategy and the
one used for redis-cluster, aside from the hash function, is in the
rules used for extracting hash tags from keys since empty tags {} are
considered valid by redis-cluster. In v1.0.0 the strategy used for our
client-side sharding cluster will reflect this change, but we will not
change it in v0.8 since it can be considered a breaking changes as it
can potentially affect existing cluster deployments.
Update CHANGELOG
Run php-cs against source code.
Switch to CLUSTER SLOTS instead of CLUSTER NODES for redis-cluster.

CLUSTER SLOTS returns a structured response easier to handle compared
to the bulk response of CLUSTER NODES which must be parsed making the
whole thing more fragile.

CLUSTER SLOTS has been added in Redis 3.0.0b7.
Update CHANGELOG.
Add dedicated server profile for Redis 3.0.