Update CHANGELOG and bump VERSION.
Added "Latest Stable Version" and "Total Downloads" Badges
Back to development for the next patch release.
Promote Redis 2.8 to a standalone server profile.

We still need to populate this new server profile with the
recently added new commands for Redis 2.8.

The next development version has been set to Redis 3.0.
Add link to CONFIG REWRITE (Redis 2.8) in phpdoc for CONFIG command.
New command: SCAN (Redis 2.8).

See http://redis.io/commands/scan for reference.
New command: SSCAN (Redis 2.8).

See http://redis.io/commands/scan for reference.
New command: ZSCAN (Redis 2.8).

One test is currently marked as skipped because it makes
Redis crash when the specified MATCH pattern returns one
or more elements.

See http://redis.io/commands/scan for reference.
New command: HSCAN (Redis 2.8).

One test is currently marked as skipped because it makes
Redis crash when the specified MATCH pattern returns one
or more elements.

See http://redis.io/commands/scan for reference.
Deprecate Client::pubSub() in favor of Client::pubSubLoop().

Client::pubSub() still works like usual by returning a new pub/sub
context, but it is now considered an alias of Client::pubSubLoop().

This change is necessary in preparation for the next major version
of Predis where Client::pubSub() will be used for the new PUBSUB
command introduced in Redis 2.8.
[tests] Minor tweaks, no actual changes.
Update CHANGELOG.
[tests] Handle failing test on OS X.
Update README.
Implement PHP iterator based on the SCAN command (Redis 2.8).

This iterator allows to perform full iterations over the keyspace of a Redis
instance by wrapping the incremental nature of SCAN using an abstraction that
fits perfectly in userland code:

  $client = new Predis\Client('tcp://127.0.0.1', ['profile' => '2.8']);
  $iterator = new Predis\Iterator\Scan\KeyspaceIterator($client);

  foreach ($iterator as $key) {
      echo $key . PHP_EOL;
  }

Memory consumption during an iteration is limited because elements are fetched
incrementally, on the other hand SCAN gives limited guarantees about returned
elements since the underlying collection (the keyspace in this case) can change
during the whole iteration process. The most immediate drawback is that the same
element may be returned multiple times.

See http://redis.io/commands/scan to fully understand the inner workings,
and particularly the "Scan guarantees" paragraph.
Extract base class for iterators based on the SCAN family of commands.

The iterators based on SCAN, SSCAN, ZSCAN and HSCAN will extend this abstract
class to share most of the logic which is common for all of the Redis commands
in the SCAN family.
Implement PHP iterator based on the SSCAN command (Redis 2.8).

This iterator allows to perform full iterations over the members of a set
by wrapping the incremental nature of SSCAN just like we did for SCAN:

  $client = new Predis\Client('tcp://127.0.0.1', ['profile' => '2.8']);
  $iterator = new Predis\Iterator\Scan\SetIterator($client, "set_key");

  foreach ($iterator as $member) {
      echo $member . PHP_EOL;
  }

Being SSCAN closely related to SCAN, it is subject to the same behaviour,
see http://redis.io/commands/scan for reference.

Meh
Implement PHP iterator based on the ZSCAN command (Redis 2.8).

This iterator allows to perform full iterations over the members of a sorted
set by wrapping the incremental nature of ZSCAN just like we did for SCAN:

  $client = new Predis\Client('tcp://127.0.0.1', ['profile' => '2.8']);
  $iterator = new Predis\Iterator\Scan\SortedSetIterator($client, "zset_key");

  foreach ($iterator as $member => $rank) {
      echo "$rank => $member" . PHP_EOL;
  }

Being ZSCAN closely related to SCAN, it is subject to the same behaviour,
see http://redis.io/commands/scan for reference.

This iterator implementation returns the member as key and the rank as value
since the rank is a float value which would be truncated when transforming
the iteration to an array (e.g. using iterator_to_array()). Luckily PHP
preserves the insertion order for named arrays members still result sorted.
Implement PHP iterator based on the HSCAN command (Redis 2.8).

This iterator allows to perform full iterations over fields and values of a
hash by wrapping the incremental nature of HSCAN just like we did for SCAN:

  $client = new Predis\Client('tcp://127.0.0.1', ['profile' => '2.8']);
  $iterator = new Predis\Iterator\Scan\HashIterator($client, "hash_key");

  foreach ($iterator as $field => $value) {
      echo "$field => $value" . PHP_EOL;
  }

Being HSCAN closely related to SCAN, it is subject to the same behaviour,
see http://redis.io/commands/scan for reference.
Update CHANGELOG and README.