Implement SetDSN

SetDSN safely changes the DSN of the connection. This results in all
idle connections being closed immediately; connections that are
in-use are closed as soon as they are returned to the pool.