Lazy socket-binding and pipelining, for better predis support

Adds the ability to create a phpiredis connection from an existing socket.
Also adds the ability to append commands to the redisContext (which will be flushed on demand before eventual reads), and read them back one at a time.  When these are dropped into Predis's PhpiredisStreamConnection, performance increases dramatically.