Add fields for system boot reason (main, sub, detail) to WW atom

So instead of logging:
* system_reason = "bootloader,reboot,userrequested"

... we will log:
* system_main_reason = "bootloader"
* system_sub_reason = "reboot"
* system_detail = "userrequested"

Change-Id: I881d9a73fea16219796dc97fd78ecac712032980
Bug: 380017314
Flag: EXEMPT see b/380017314
diff --git a/stats/atoms.proto b/stats/atoms.proto
index a98b5c2..f94d6f8 100644
--- a/stats/atoms.proto
+++ b/stats/atoms.proto
@@ -3307,13 +3307,29 @@
  *   system/core/bootstat/bootstat.cpp
  */
 message BootSequenceReported {
-    // Reason for bootloader boot. Eg. reboot. See bootstat.cpp for larger list
-    // Default: "<EMPTY>" if not available.
-    optional string bootloader_reason = 1;
+  // Reason for bootloader boot. Eg. reboot. See bootstat.cpp for larger list
+  // Default: "<EMPTY>" if not available.
+  optional string bootloader_reason = 1;
 
-    // Reason for system boot. Eg. bootloader, reboot,userrequested
-    // Default: "<EMPTY>" if not available.
-    optional string system_reason = 2;
+  // Deprecated. Use system_main_reason, system_sub_reason, and
+  // system_detail instead.
+  //
+  // Reason for system boot. Eg. bootloader,reboot,userrequested
+  // Format: <main_reason>,<sub_reason>,<detail>
+  // Default: "<EMPTY>" if not available.
+  optional string system_reason = 2 [deprecated = true];
+
+  // First part of the system reason. E.g. bootloader.
+  // Default: Empty string if not available.
+  optional string system_main_reason = 7;
+
+    // Second part of the system reason. E.g. reboot.
+    // Default: Empty string if not available.
+    optional string system_sub_reason = 8;
+
+    // Third part of the system reason. E.g. userrequested.
+    // Default: Empty string if not available.
+    optional string system_detail = 9;
 
     // End of boot time in ms from unix epoch using system wall clock.
     optional int64 end_time_millis = 3;