connection: add an optional `BlockingConnectionPool` class.

* implements the same api as the default `ConnectionPool`
* blocks for a specified timeout when getting a connection if no
  connections are available
connection: tests for `BlockingConnectionPool`.