Add ability for user to create their own (closeable) pools.

See: https://github.com/ptaoussanis/carmine/issues/38

This is a (broad) commit that opens up the ability for the use to manage their own connection pools, as well as cleans up a bug in ConnectionPool which had a bad type-hint for it's pool in its close method.