[Chromecast] Add unit test cases for external audio pipeline library

This CL adds test cases to "cast_audio_backend_unittests" for checking external
audio pipeline library. Tests check "StreamMixer" interaction with the library
when library returns IsSupported() true.

"Cast_audio_backend_unittests" unittest now is built with
"fake_external_audio_pipeline" that has library implementation. For test reason
the library supports additional functions (returns interface) that are used
only from unittests. Additional functions are defined in
"fake_external_audio_pipeline_support.h" "testing" namespace.

There are the following test cases:
- "SetMediaVolume"/"SetMediaMuted" for testing media volume/mute notification
   when the volume/mute is changed.
- "SetVolumeChangeRequest"/"SetMuteChangeRequest" for testing a change request
   for volume/mute from the library.
- "ExternalAudioPipelineLoopbackData" for testing loopback data.

Bug: internal b/113337099
Depends-On: I755aaa94470dc8ba33a458d6139ef9254655d3e4
Change-Id: Ie8ebaf878e0d1c0d1f8485e645a2e05142745928
Reviewed-on: https://chromium-review.googlesource.com/1218045
Commit-Queue: Sergei Istomin <sistomin@chromium.org>
Reviewed-by: Kenneth MacKay <kmackay@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593554}
5 files changed