Connection pooling with PgBouncer vs built-in pooling - when do you need it?