Relanding: Implement RTCConfiguration.iceCandidatePoolSize.

Depends on this CL in order to work in Chromium:
https://codereview.chromium.org/1976673002/

It works by creating pooled PortAllocatorSessions which can be picked up
by a P2PTransportChannel when needed (after a local description is set).

This can optimize candidate gathering time when there is some time between
creating a PeerConnection and setting a local description.

R=pthatcher@webrtc.org

Committed: https://chromium.googlesource.com/external/webrtc/+/48e9d05f510b1616c81303944008f75825971802

Review URL: https://codereview.webrtc.org/1956453003 .

Cr-Original-Commit-Position: refs/heads/master@{#12729}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: a1c303535fe7a29b87879047996efa2952f9701b
27 files changed