add support for connection pooling

You can either supply size and timeout parameters, or a pool of your own creation.

Fixes #22.