PB client connection pool optimization

This is a small optimization to the old underlying Riak PB client's
connection pool. The semaphore permits were used for connection
creation rather than access to the pool itself.

In an edge case where the pool was at max number of connections and
all connections were checked out, a thread would wait for a permit,
time out (because the pool was at max) then throw an exception. If a
connection had been returned to the pool in the meantime it would
go unnoticed.

This is not really a big issue as the current IRiakClient implementations
at the top of the client stack would simply retry the operation. The only
real impact is that any FIFO guarantees would then be lost affecting the
predictability of which thread (if any) would not get a connection and the
time spent trying to do so.

This change makes the semaphore permit responsible fo access to the pool
itself; it now represents how many connections are checked out. Barring
an issue in creating a new connection once you have a permit you will
receive a connection. When a connection is released by the client a permit
is also released.
removed the connection acquire retry

Retrying the connection attempt a couple nanoseconds later if it
failed is unlikely to help
Moved warmUp finished semaphore changes

It made much more sense for warmUp() to be called from doStart()
and this finishes all the changes to where the semaphore controls
access to the pool itself rather than the connection creation
Merge pull request #230 from basho/pb-connection-pool-permit-fix

Pb connection pool permit fix