[core] eavesdrop: avoid eavesdropping on itself and return error.
[core] eavesdrop: adjust buffer operations for ptime mismatch and for when ptimes are the same.
[core] eavesdrop: add buffering based on LCM (Least Common Multiple) when ptime mismatch,
and have audio write thread enabled when ptime eavesdropee < ptime eavesdropper.
[unit-tests] add unit-tests for eavesdrop.