Connection pooling and some cleanup/fixes

This pull request adds:
- A connection pool implementing thread-safe leasing of automatically created connections.
- Some minor fixes to make defcmd/.. work when commands are executed inside a MULTI/EXEC block.
- Wrapping the body of with-redis-connection in dynamic-wind such that the connection is closed regardless of how control escapes the body (exception, captured continuation, ...).

I am also planning to write some tests and add them here.