Connection pooling support using 'pg' module's connection pooling 

Added connection pooling support using 'pg' module's in-build connection pooling mechanism

Schema definition contains an additional parameter poolSize that is passed to 'pg' module.
Actually, pg module internally uses 'generic-pool'  package from npm for pooling

The question will be clarified if we understand how 'generic-pool' manages a 'resource' (Here it is a connection).

Initially pool is empty
first we calls 'connect' 
It checks for a working connection . can't find any one. so it create a connection and passes it callback.
( it is not prensent in pool )
In callback we use 'client' to do query


when 'done' is called, client is returned to pool. But sill it connected.

If we calls 'connect'  before the first one's done is called, the above said 'creation of connection' happens again. It happens until max poolSize is not exceeded

if maxPoolSize is reached and no client is available in pool it will wait for a client to return back to pool.