trying to getitem on a key that doesn't exist should raise a KeyError
added `linsert()` to readme.
Added socket disconnection if commands are rejected due to AOF/RDB load.

SELECT commands are issued only on initial socket connection. If a user issues a command during an AOF/RDB load, the socket connection will be successfully opened, but the SELECT command will be lost. If subsequent commands are sent after the AOF/RDB load is completed, the SELECT command will not be retried (due to the open socket), and those commands will go to the wrong DB. This behavior appears to be present in hiredis as well as redis-py. Fixing it here by special casing the AOF/RDB load message and closing the socket connection before raising ResponseError.
__getitem__ now raises a KeyError when a key doesn't exist
Merged pull request #132 from banjiewen/banjiewen.

Added socket disconnection if commands are rejected due to AOF/RDB load.
credit to Benjamin Anderson.
Merged pull request #129 from kennethreitz/feature/docfix.

added `linsert()` to readme.
connection class completely refactored. encoding and command packing moved from client to connection. introduced concept of protocol parsers and implemented both a PythonParse and a hiredis parser. the parser class can be overridden in the __init__ of the connection if desired.
we don't need the command_name overriding just yet
make a formal hook so other types of connections don't have to repeat the same connection setup logic
all tests passing with new connection pool
all tests pass now except pub/sub. connection_pool's get_connection now always received the command name for the next command. still need to pass keys.
connection pool is now a real pool. we no longer rely on threading.local for anything in redis-py. yaa!
more error checking for socket errors
completely refactored pubsub. this is backwards incompatible, but quite necessary.
allow shard hints to be passed to pipeline and pubsub objects. a smart connection pool could use these hints to determine the correct shard to run on.
removed all previously deprecated parameters and commands
removal of more deprecated commands
removing unnecessary imports
new pubsub tests
updated changelog for 2.4