Reimplement the builtin audio codec factories using the new stuff in api/

The whole point of all the audio codec stuff we've recently published
in api/ is to function as lego bricks so that building stuff like our
builtin audio codec factories will be easy.

(This has landed once before, but got reverted because of Chromium test
failures---apparently, someone isn't ignoring the case of the codec names
like they're supposed to. The quick fix was to preserve the same case
used by the old implementation.)

BUG=webrtc:7821, webrtc:7822

Review-Url: https://codereview.webrtc.org/2998263002
Cr-Commit-Position: refs/heads/master@{#19512}
diff --git a/webrtc/api/audio_codecs/opus/BUILD.gn b/webrtc/api/audio_codecs/opus/BUILD.gn
index 29a68ff..658d151 100644
--- a/webrtc/api/audio_codecs/opus/BUILD.gn
+++ b/webrtc/api/audio_codecs/opus/BUILD.gn
@@ -36,9 +36,12 @@
     ":audio_encoder_opus_config",
     "..:audio_codecs_api",
     "../../../modules/audio_coding:webrtc_opus",
-    "../../../rtc_base:protobuf_utils",  # TODO(kwiberg): Why is this needed?
     "../../../rtc_base:rtc_base_approved",
   ]
+  public_deps = [
+    # TODO(kwiberg): Remove this public_dep when bug 7847 has been fixed.
+    "../../../rtc_base:protobuf_utils",
+  ]
 }
 
 rtc_static_library("audio_decoder_opus") {