This CL fixes a few issues in the (default-disabled) dynamic pacing
mode:
* Slight update to sleep timing to avoid short spin loops
* Removed support for early execution as that lead to time-travel
contradictions that were difficult to solve.
* Makes sure we schedule a process call when a packet is due to be
drained even if the queue is empty, so that padding will start at
the correct time.
* While paused or empty, sleep relative last send time if we send
padding while silent - otherwise just relative to last process
time.
* If target send time shifts so far back that packet should have
been sent prior to the last process, make sure we don't let the
buffer level remain.
* Update the PacedSender test to _actually_ use dynamic processing
when the param says so.
Bug: webrtc:10809
Change-Id: Iebfde9769647d2390fd192a40bbe2d5bf1f6cc62
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160407
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29911}