Allow calling release on connection removed from pool

This adds a guard on `PoolConnection.prototype.release` to do nothing when the connection is no longer in the pool. This allows code to unconditionally call `release` on connections like responsible code even when the connection encountered an error or ended and was thus removed from the pool already.

Fixes #589