Pass option handler instance to callable initializers.

This is just a convention implemented to client options supporting
callable initializers such as "profile", "cluster" and "replication".

This is useful to get a fully-initialized default value and perform
additional operations before returning it. An example with "profile":

  $options = array(
    'commands' => array(
      'test1' => 'Predis\Command\ConnectionEcho',
      'test2' => 'Predis\Command\ConnectionEcho',
    ),
    'profile'  => function ($options, $option) {
      $profile = $option->getDefault($options);

      if (is_array($options->commands)) {
        foreach ($options->commands as $id => $cmd) {
          $profile->defineCommand($id, $cmd);
        }
      }

      return $profile;
    },
  );
Implement callable initializer for "connections" client option.
[tests] Add missing tests for Predis\Option\ClientReplication.
Update CHANGELOG.
Instantiate the current class when subclassing Client.

Previously the getClientFor() method in a subclass of Predis\Client
returned an instance of Predis\Client instead of a new instance of
the subclass. The new behaviour is more correct.
Make it possible to cast key prefix processor instance to string.

Mostly useful with string interpolation when getting the current prefix
associated to a client instance.
Update URL for phpiredis.

Ownership of the repository has been transferred. Thanks again to
@seppo0010, the original author of phpiredis, for his work on the
extension!

[ci skip]
Bump year in LICENSE.

On a related note, happy new year!

[ci skip]
Add optional callable to drive extraction of node hash in distributor.

This is mainly in response to the longstanding issue #36 in which my
proposed solution was fine in terms of functionalities, but eventually
never made into the repository since it was far from being clean enough
for my taste.

Now developers can optionally pass a callable object when creating the
hashring instance to decide how the distributor should extract the hash
from a node (really a connection instance) to populate the ring:

  use Predis\Cluster\Distribution\HashRing;
  use Predis\Connection\PredisCluster;

  $servers = array(
    'tcp://10.0.0.1?alias=node01',
    'tcp://10.0.0.2?alias=node02',
  );

  $options = array(
    'nodehash' => function ($connection) {
      return $connection->getParameters()->alias;
    },
    'cluster' => function ($options) {
      $replicas = HashRing::DEFAULT_REPLICAS;
      $hashring = new HashRing($replicas, $options->nodehash);
      $cluster  = new PredisCluster($hashring);

      return $cluster;
    },
  );

  $client = new Predis\Client($servers, $options);

Both HashRing and KetamaPureRing in the Predis\Cluster\Distribution
namespace support this new approach.
Add missing param to phpdoc entry.

[ci skip]
Update CHANGELOG.

[ci skip]
Update .gitignore.

[ci skip]
Remove <?php tags from README.

It seems like GitHub can now highlight PHP syntax without those ones.
Highlight PHP code in FAQ.
Fix CHANGELOG.
Update CHANGELOG.
Add PHP 5.5 to the CI build matrix and switch to branch blacklisting.
Bump VERSION and update CHANGELOG.

[ci skip]
Get back to development.
Fix standard pipeline executor not parsing raw replies.

This bug was actually introduced right before pushing the stable release
of v0.8.0 in which we moved the responsibility of parsing raw replies
with command parser to consumer classes.

This commit closes #101.