уменьшение размера пула при ребалансе

В рамках #108 (closed) при уменьшение max_size лишние соединения закрываются на этапе release. При этом, если пул простаивает и свободные соединения не берутся пользователем, его фактический размер может долго оставаться больше заданного max_size.

  • свободные лишние -> закрыть сразу -- предлагается сделать в рамках этой задачи
  • занятые лишние -> дождаться release -- уже реализовано в #108 (closed)

Предлагается дополнительно учитывать уменьшение max_size на этапе rebalance для sync/async пулов.

  • при уменьшении max_size вызывать TopologyTracker.trigger(), чтобы не ждать следующего refresh
  • на этапе rebalance закрывать лишние свободные соединения, сохраняя равномерное распределение пула по инстансам
  • удалять выбранные соединения из _pool под lock, а закрывать за его пределами