Fix voice communication audio playback capture

This change fixes the CTS failure in AudioPlaybackCaptureTest caused
by ag/10111312 and ag/10111311.
It contains the following fixes/changes:
  - Mix match for playback capture of USAGE_VOICE_COMMUNICATION now
    also respects a new flag (AudioMix's mVoiceCommunicationCaptureAllowed)
    which is set by AudioService only if the caller explicitly asked
    to capture USAGE_VOICE_COMMUNICATION and have the
    CAPTURE_VOICE_COMMUNICATION_OUTPUT.
  - A permission check on the native side in case
    mVoiceCommunicationCaptureAllowed is set.
  - Code cleanup, mainly in AudioPolicy.h and AudioPolicy.cpp.

This change is accompanied by ag/10242955 on the Java side.

Bug: 148559127
Test: manual
Test: atest PlaybackCaptureTest (with the version prior to ag/10220852)
Test: atest com.google.android.gts.audio.AudioHostTest
Change-Id: I8ae6249f4da1de35e962c838d91f690eb906570e
5 files changed