New thread-safe and potentially blocking (waiting) connection pool implementation.

Connections pools are objects, each of which can be configured individually. Configuration
options are:

* SPEC: a connection specification to which cl-postgres:open-database can be applied
* MAX-CONNECTIONS: a maximum number of connections handled by the connection pool that
  may be open in parallel (or NIL indicating that there is no limit).
* BLOCKING: If NIL an error is issued if a user tries to get a connection from a
  connection pool that has already MAX-CONNECTIONS connections in use, otherwise
  the thread waits till a used connection gets released by another thread.