Add hard limit on connection pooling

Implement driver level hard limit connection pooling to restrict
how many connections can be made to the database at any one time.
Don't disconnect from the database if persist option is provided.