* Rewrite the pool gateway synchronization
Rewrite the pool gateway synchronization so that:
- The documented race condition in PoolInterfaceActor is gone. No
PoolInterfaceActor will receive new requests after the gateway
shutdown has been initiated (fix#20081).
- A gateway created using newHostConnectionPool will no longer
share its pool with others even when it has been shutdown
due to idle-timeout and recreated. Also, its original
materializer will be used to create all the successive
pools incarnations (fix#20080).
- Collapsing chains of gateways do no longer need to be created.
The gateways are now only an entrypoint to the pool master
actor, and this actor is in charge of keeping a cache of
currently active pools and recreate them from the information
given by the gateway when needed.
* Add copyright header
* Mark PoolMasterActor as INTERNAL API
* Larger outer timeout
* Define Props in PoolMasterActor object
* Comment INTERNAL API
* Remove unused import