Don't return ErrBadConn from Open()

Functionality-wise, there's no reason to return ErrBadConn from Open()
since returning *any* error will make sure that the connection is not
put into the pool.  But there's a very good reason to not return
ErrBadConn; it makes diagnosing problems during connection establishment
completely impossible without either having access to the server logs or
interpreting captured network traffic.

This is a minor backwards compatibility breakage, since we used to
return ErrBadConn in a lot of cases previously.  However, there were
several cases were we returned the real error instead, so any caller
assuming that they would either get a nil or ErrBadConn from Open was
already broken.
Fix test error message
Test for Open() failures in TestRuntimeParameters

This is a bit ugly, but it's closer to the ErrBadConn tests we had
before.
Add a panic for Go 1.0 compatibility
Revert "Test for Open() failures in TestRuntimeParameters"

Looks like Go 1.0 doesn't have *sql.DB.Ping(). :-(

This reverts commit df7115193816b78bbb865e3e48e3bfe74b57a719.