database/sql: add SetMaxOpenConns

Update issue 4805

Add the ability to set an open connection limit.
Fixed case where the Conn finalCloser was being called with db.mu locked.
Added separate benchmarks for each path for Exec and Query.
Replaced slice based idle pool with list based idle pool.

R=bradfitz
CC=golang-dev
https://codereview.appspot.com/10726044

Committer: Brad Fitzpatrick <bradfitz@golang.org>