Fix fuzzer crash in create_trials_from_seed_v2_fuzzer

The create_trials_from_seed_v2_fuzzer was crashing due to an
unregistered pref and a null EnabledStateProvider.

This CL fixes the crash by:
- Providing a TestEnabledStateProvider to the MetricsStateManager.
- Adding a dependency on //components/metrics:test_support to the
  fuzzer's BUILD.gn file.
- Calling MetricsStateManager::RegisterPrefs() from the fuzzer and
  refactoring MetricsStateManager to register CleanExitBeacon's prefs,
  improving encapsulation.

This is fixing the issues introduced in:
https://chromium-review.googlesource.com/c/chromium/src/+/6836751
(Which apparently weren't caught by any try bots.)

This change was tested locally, by building:
`autoninja -C out/fuzz create_trials_from_seed_v2_fuzzer`
With these gn args:
```
archive_seed_corpus = false
ffmpeg_branding = "ChromeOS"
is_asan = true
is_debug = true
optimize_for_fuzzing = true
pdf_enable_xfa = true
proprietary_codecs = true
symbol_level = 1
use_libfuzzer = true
use_remoteexec = true
is_component_build = false
```
And ran via:
`out/fuzz/create_trials_from_seed_v2_fuzzer -runs=1 -max_len=256`

Bug: 439018238
Change-Id: I7c92910ec9bc184824cedfa562a3b2fd42cb63a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6854030
Commit-Queue: Alexei Svitkine <asvitkine@chromium.org>
Commit-Queue: Roger McFarlane <rogerm@chromium.org>
Auto-Submit: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Roger McFarlane <rogerm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1502727}
NOKEYCHECK=True
GitOrigin-RevId: d6b5a28943499b1011f531d05bb0ebf066f68662
diff --git a/metrics_service.cc b/metrics_service.cc
index 363b7fe..03ac8a1 100644
--- a/metrics_service.cc
+++ b/metrics_service.cc
@@ -313,7 +313,6 @@
 
 // static
 void MetricsService::RegisterPrefs(PrefRegistrySimple* registry) {
-  CleanExitBeacon::RegisterPrefs(registry);
   MetricsStateManager::RegisterPrefs(registry);
   MetricsLog::RegisterPrefs(registry);
   StabilityMetricsProvider::RegisterPrefs(registry);
diff --git a/metrics_state_manager.cc b/metrics_state_manager.cc
index 338092d..46b4502 100644
--- a/metrics_state_manager.cc
+++ b/metrics_state_manager.cc
@@ -32,6 +32,7 @@
 #include "base/uuid.h"
 #include "build/branding_buildflags.h"
 #include "build/build_config.h"
+#include "components/metrics/clean_exit_beacon.h"
 #include "components/metrics/cloned_install_detector.h"
 #include "components/metrics/enabled_state_provider.h"
 #include "components/metrics/entropy_state.h"
@@ -526,6 +527,7 @@
 
   EntropyState::RegisterPrefs(registry);
   ClonedInstallDetector::RegisterPrefs(registry);
+  CleanExitBeacon::RegisterPrefs(registry);
 }
 
 void MetricsStateManager::BackUpCurrentClientInfo() {