* Make _refreshPoolCacheIfRequiredAsync type-safe and remove Promise.all * Factor out PoolsCache key logic into a function * Use Map instead of object in PoolsCache and increase the default timeout * Clean up PoolsCache and simplify its public interface