Merged missing changes from gar1t fork.

There are two changes here:

1. Associate a connect timeout for a pool

2. Add add_pool/2, which uses the arg + options API convention in Erlang

== Connect timeout

To reasonably support connect problems, the module must support a configurable
connect timeout, which is used in gen_tcp:connect/3. This can now be
specified using add_pool/10. add_pool/2, add_pool/8, and add_pool/9 use
the atom infinity, which results in the original connect behvior -- i.e. this
is a backward compatible change.

== add_pool/2

The eight+ argument add_pool function is a complete PITA to use and is not
easily enhanced - it should have been done away with a long time ago in
favor of add_pool/2, which uses required arg + options list to manage the
complexity of the API. add_pool/2 requires the pool ID, but uses sensible
defaults for all other values.

To stop the madness, I'm not exporting add_pool/10 (which does the work in
this implementation). If someone needs a connect timeout, he/she should use
add_pool/2. I'd like to see the doc updated to use add_pool/2, but won't
presume to do this. We could export add_pool/10, but really, does the world
need another add_pool arity?