rtpsession: Add "on-sending-nacks" signal
This patch (based on !583) adds a new callback allowing an application to implement a new mechanism to send NACKs. This is needed for the implementation of RIST support as this specification introduce the notion of range nacks that are encoded as APP RTCP packets.
- Add a unit test the verify the new API and show how to use it
- Investigate how NACK skipping can work in multicast cases
About this last one, the story is that right now we don't have a mechanism to avoid sending NACK request if another receiver on the same multicast group have already recently request it. @ocrete believe that this could be done by filtering against the retention window data. The APP RTCP packet do get stored in that window, but the session does not have the semantic to analysed third party APP request that would contain NACK information. So basically, this API holds as long as this filtering can be done through another companion callback. If we find out that filtering need to happen in this callback, which I hope not, then we need to rework the API.