Wait for pool space instead of throwing an error

This modifies the behavior of the connection pool when the maximum number of connections have been established.

Previously, the pool would throw an error in that situation.  Now, it waits until the number of connections has dropped back below the maximum, then proceeds.