Implement a connection cache

This is not the same as the connection pool which is used for each
database connection (and can be configured with :max_connections).
Handle all exceptions and display them