Don't perform unicode encoding/decoding if charset is None.

If RedisProtocol has a charset set to None, it shouldn't try to decode received
strings. When client receives binary data, sometimes it may look like
valid utf-8 (or other encoding), and in this case it can be decoded and
unicode object is returned. This causes output ambiguity and
performance impact.
Use the free connection queue to select the connection in the pool.

Currently the factory to run the command selects the connection in the pool
on a round-robin basis. This patch adds a queue of available connections
into the factory. When the connection becomes available, it's being put
to the queue, and when the user needs to run the command, it's taken
from the queue.
That eliminates the problem of connections running blocking commands in
the pool.
Added test for blocked connection round-robin scheduling.
Replace assertIsNotNone with assertNotEqual in the blocking connections test.
Merge pull request #48 from ioga/connection-queue

Use the free connections queue to select the connection in the pool.
Merge pull request #47 from ioga/charset

Don't perform unicode encoding/decoding if charset is None.
fix message and pmessage handling for subscribe and psubscribe
Merge pull request #50 from twang817/master

Fix message and pmessage