conncheck: rework early stun requests handling
With this patch we simplify the code used to handle the incoming stun
request when remote candidates or remote credentials have not been
received yet.
When the remote credentials is unknown, the stun request is stored
in a list of incoming_checks for later processing, and no further
processing is done, except responding to the request.
When the remote credentials are received, the triggered checks for these
incoming checks can now be queued, and the related pairs are created.
If the remote candidates have not been received when the stun request
on a valid local port arrives, a peer-reflexive remote candidate will be
created. This candidate may need to be updated later when remote
candidates are finally received, including candidate priority and
foundation, and also related pairs.
Reviewed-by: Olivier Crête <olivier.crete@collabora.com>
Differential Revision: https://phabricator.freedesktop.org/D1889