Pool c7

I generally like to use defer only when:
* It helps me avoid writing the same command multiple times (generally due to many returns)
* Grouping together methods that are related, such as `(*).Open` and `(*).Close`, etc.

Besides the slightly relevant performance gain, I think it also makes more sense for `p.Release(conn)` to be at the end, when it happens. Reading through the example won't make it obvious.