Reducing AR::ConPool's critical (synchronized) section

This is an alternative (much lighter in scope) PR to #14926, only the smallest possible amount of code is changed.

The objective is to:
 * move connection verification outside of `synchronized` section -> 3590eea
 * move connection establishment outside of the `synchronized` section -> 6eda088

This should allow for more concurrency. Related: #14891, #14919.

As per @matthewd's suggestion:
 * remove synchronization from around the `@reserved_connections` cache -> ca85c48
This would work, but is bit too clever IMHO (for example there are some additional issues with `try_to_checkout_new_connection`: a thread might have already consulted `@new_cons_enabled`, but have not gotten to the point of `@now_connecting += 1`, so while inside `@new_connections_allowed.synchronize {}` block 1 additional thread might potentially slip through and will establish a new connection even though we might be thinking we've disabled new connections).