multi-value aggregation in ValueMetric

Allow aggregation on multiple fields, instead of one at a time.
All these fields should use the same aggregation time, use_diff,
direction, etc.
The config reuses value_field but allows multiple fields to be
specified.
The order they are specified determines the "index" of a value in the
output.

Bug: 119217634
Test: unit test
Change-Id: I38b1465d13723a897b30ee0b4f868498f60ad4db
diff --git a/cmds/statsd/src/stats_log.proto b/cmds/statsd/src/stats_log.proto
index 3b42b31..5d0f3d1 100644
--- a/cmds/statsd/src/stats_log.proto
+++ b/cmds/statsd/src/stats_log.proto
@@ -108,12 +108,22 @@
 
   optional int64 value = 3 [deprecated = true];
 
-  oneof values {
-      int64 value_long = 7;
+  oneof single_value {
+      int64 value_long = 7 [deprecated = true];
 
-      double value_double = 8;
+      double value_double = 8 [deprecated = true];
   }
 
+  message Value {
+      optional int32 index = 1;
+      oneof value {
+          int64 value_long = 2;
+          double value_double = 3;
+      }
+  }
+
+  repeated Value values = 9;
+
   optional int64 bucket_num = 4;
 
   optional int64 start_bucket_elapsed_millis = 5;