Add support for external encoders in ACM

Also introduce tests using external (mock) encoders, both for
CodecOwner and for AudioCodingModule.

Support for external decoders is still missing.

COAUTHOR=henrik.lundin@webrtc.org
BUG=4474
R=jmarusic@webrtc.org, minyue@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49939004

Cr-Commit-Position: refs/heads/master@{#9206}
diff --git a/webrtc/modules/audio_coding/main/acm2/codec_manager.h b/webrtc/modules/audio_coding/main/acm2/codec_manager.h
index 2c54512..bb9545d 100644
--- a/webrtc/modules/audio_coding/main/acm2/codec_manager.h
+++ b/webrtc/modules/audio_coding/main/acm2/codec_manager.h
@@ -31,9 +31,11 @@
   CodecManager();
   ~CodecManager();
 
-  int RegisterSendCodec(const CodecInst& send_codec);
+  int RegisterEncoder(const CodecInst& send_codec);
 
-  int SendCodec(CodecInst* current_codec) const;
+  void RegisterEncoder(AudioEncoderMutable* external_speech_encoder);
+
+  int GetCodecInst(CodecInst* current_codec) const;
 
   bool SetCopyRed(bool enable);