Open is the set of currently open connections; idle is the subset of those which are not currently being used by the application and are available for reuse.

We only really need the full list so we can destroy them in `destroy()`.

(I just added an if around the call to `reset()` in `connection.destroy()` so it is only invoked when the CacheMode is CHANNEL).