Connpool.v2

The new connection pool relies on `sync.Pool` to manage connections. This gives us a simple way to have the pool dynamically resize.

(There are minor implementation changes when compile with `-race`; connections are closed instead of re-used.)

Performance is equal to or better than before in all existing benchmarks.

Additionally, there is a new test case (`TestFlood`) that opens up 200 goroutines that simultaneously attempt transactions. The goal here is to ensure that the implementation of `Client` forbids more than `maxConns` live connections at any moment in time.