Moved the GainControlForNewAGC class to be a separate file.
Apart from being motivated in order to make the source files shorter
this is needed when separating the APM submodules structs into
separate files.

BUG=

Review URL: https://codereview.webrtc.org/1678813002

Cr-Commit-Position: refs/heads/master@{#11611}
diff --git a/webrtc/modules/audio_processing/audio_processing_impl_locking_unittest.cc b/webrtc/modules/audio_processing/audio_processing_impl_locking_unittest.cc
index 2e22b2c..7ce6a56 100644
--- a/webrtc/modules/audio_processing/audio_processing_impl_locking_unittest.cc
+++ b/webrtc/modules/audio_processing/audio_processing_impl_locking_unittest.cc
@@ -600,7 +600,6 @@
                 (test_config_->aec_type ==
                  AecType::BasicWebRtcAecSettingsWithAecMobile));
   EXPECT_TRUE(apm_->gain_control()->is_enabled());
-  apm_->gain_control()->stream_analog_level();
   EXPECT_TRUE(apm_->noise_suppression()->is_enabled());
 
   // The below return values are not testable.
@@ -713,9 +712,12 @@
   // Prepare a proper capture side processing API call input.
   PrepareFrame();
 
-  // Set the stream delay
+  // Set the stream delay.
   apm_->set_stream_delay_ms(30);
 
+  // Set the analog level.
+  apm_->gain_control()->set_stream_analog_level(80);
+
   // Call the specified capture side API processing method.
   int result = AudioProcessing::kNoError;
   switch (test_config_->capture_api_function) {
@@ -738,6 +740,9 @@
       FAIL();
   }
 
+  // Retrieve the new analog level.
+  apm_->gain_control()->stream_analog_level();
+
   // Check the return code for error.
   ASSERT_EQ(AudioProcessing::kNoError, result);
 }