Use a context manager for connections

And use a greenlet for cleaning up
Add a generic ConnectionPool implementation
Use generic connection pool for RabbitMQ
Fix broken tests
Add connection pooling to Memcached and tests
Add tests for the memcluster backend
Add extra tests to memcluster implementation
Use SHA-256 for key dispersion + add tests
Bump version (new hash algo)
Merge branch 'generic-pool'