Rework connection cleanup so that neither Close nor Dispose calls the other