Add a aggregation count section to profile.

This section is used on server side.
The format is defined on server and it is:

***************
uint16 profile_aggregation_count
uint16 aggregation_count_for_each_dex_file_size
aggregation_count_for_each_dex_file[]

The format of aggregation_count_for_each_dex_file is:
  uint16 profile_index
  uint16 class_aggregation_count_size
  uint16 class_aggregation_count[]
  uint16 method_aggregation_count_size
  uint16 method_aggregation_count[]
***************

The aggregation count for classes/methods are in the ascending order of their indices.

Bug: 188071742
Test: m
Change-Id: I683b296699e2a80a8c6dc167c84b4d592a0f26fc
diff --git a/libprofile/profile/profile_compilation_info.cc b/libprofile/profile/profile_compilation_info.cc
index 5c95608..da54bc6 100644
--- a/libprofile/profile/profile_compilation_info.cc
+++ b/libprofile/profile/profile_compilation_info.cc
@@ -218,8 +218,12 @@
   // Methods included in the profile, their hotness flags and inline caches.
   kMethods = 3,
 
+  // The aggregation counts of the profile, classes and methods. This section is
+  // an optional reserved section not implemented on client yet.
+  kAggregationCounts = 4,
+
   // The number of known sections.
-  kNumberOfSections = 4
+  kNumberOfSections = 5
 };
 
 class ProfileCompilationInfo::FileSectionInfo {
@@ -874,6 +878,7 @@
  *   ExtraDescriptors - optional, zipped
  *   Classes - optional, zipped
  *   Methods - optional, zipped
+ *   AggregationCounts - optional, zipped, server-side
  *
  * DexFiles:
  *    number_of_dex_files
@@ -1792,6 +1797,9 @@
               *source, section_info, dex_profile_index_remap, extra_descriptors_remap, error);
         }
         break;
+      case FileSectionType::kAggregationCounts:
+        // This section is only used on server side.
+        break;
       default:
         // Unknown section. Skip it. New versions of ART are allowed
         // to add sections that shall be ignored by old versions.