Update upstream

```text
changeset:   21670:0a4f829ee9ff
user:        Brad Fitzpatrick <bradfitz@golang.org>
date:        Fri Oct 31 09:49:42 2014 -0700
summary:     database/sql: make TestDrivers not crash on second run

changeset:   21498:7e241965fb8a
user:        Russ Cox <rsc@golang.org>
date:        Wed Oct 15 13:10:14 2014 -0400
summary:     database/sql: add Drivers, returning list of registered drivers

changeset:   21265:50ce4ec65c4a
user:        Marko Tiikkaja <marko@joh.to>
date:        Mon Sep 22 09:19:27 2014 -0400
summary:     database/sql: Close per-tx prepared statements when the associated tx ends

changeset:   21007:fdb52a28028a
user:        Marko Tiikkaja <marko@joh.to>
date:        Tue Sep 02 09:08:41 2014 -0700
summary:     database/sql: Avoid re-preparing statements when all connections are busy

changeset:   20933:f31dac44dd17
user:        Brad Fitzpatrick <bradfitz@golang.org>
date:        Thu Aug 28 11:07:29 2014 -0700
summary:     database/sql: use a value type instead of a pointer

changeset:   20929:a701ced4b6da
user:        Alberto García Hierro <alberto@garciahierro.com>
date:        Thu Aug 28 08:49:56 2014 -0700
summary:     database/sql: use slices rather than container/list

changeset:   20788:d9b3cbdfc09f
user:        Russ Cox <rsc@golang.org>
date:        Mon Aug 18 21:13:11 2014 -0400
summary:     cmd/gc, runtime: refactor interface inlining decision into compiler
```