Audioflinger dumpsys cleanup

Re-order audioflinger dumpsys and add argument parsing for various sections.

Additionally, to clean up:
- Pull out dumpsys conditional locking logic into utilities, which
  return guards
- Add utility to write strings to fd

Test: adb shell dumpsys media.audio_flinger with all combos
Test: Compiles/boots
Flag: EXEMPT logging only
Bug: 372070273
Change-Id: I8bcf467ee2792d90b298998267591a354e0661c3
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index ba2b920..6d3eea5 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -469,9 +469,10 @@
     // AudioFlinger::setParameters() updates with mutex().
     std::atomic_uint32_t mScreenState{};
 
-    void dumpPermissionDenial(int fd, const Vector<String16>& args);
-    void dumpClients_ll(int fd, const Vector<String16>& args) REQUIRES(mutex(), clientMutex());
-    void dumpInternals_l(int fd, const Vector<String16>& args) REQUIRES(mutex());
+    void dumpPermissionDenial(int fd);
+    void dumpClients_ll(int fd, bool dumpAllocators) REQUIRES(mutex(), clientMutex());
+    void dumpInternals_l(int fd) REQUIRES(mutex());
+    void dumpStats(int fd);
 
     SimpleLog mThreadLog{16}; // 16 Thread history limit