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.