Generic resource pool. Can be used to reuse or throttle expensive resources such as database connections.