Connection pooling for thread-safe communication with glock server

I have kept the API for this client the same for the end user.

The main change is that we now have to specify the size of the
connection pool at new client

The inner working is such that each operation with grab one connection
from the channel. If the connection is bad, that will be redialed and
replace with a new connection.