Reland "Android: Generate JNI code for stats"

This reverts commit 43d069a2cdb90ec8c887cf8aa68b42b7cf7ea49d.

Reason for revert: Include fix for local reference overflow.

Original change's description:
> Revert "Android: Generate JNI code for stats"
>
> This reverts commit aede67a199ae0552074bfec4bb03cc9a6a5fba0f.
>
> Reason for revert: Causes error:
> JNI ERROR (app bug): local reference table overflow (max=512)'
>
> Original change's description:
> > Android: Generate JNI code for stats
> >
> > This CL also unifies the functions for converting from C++ to Java, and
> > generates the boiler plate for converting C++ vectors to Java arrays.
> >
> > Bug: webrtc:8278
> > Change-Id: I262e9162beae8a64ba0e8b6a27e1081207b03961
> > Reviewed-on: https://webrtc-review.googlesource.com/26020
> > Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> > Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20918}
>
> TBR=magjed@webrtc.org,sakal@webrtc.org
>
> Change-Id: Ieb26ed8577bd489a4dd4f7542d16a7d0e11f409f
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:8278
> Reviewed-on: https://webrtc-review.googlesource.com/26900
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20926}

TBR=magjed@webrtc.org,sakal@webrtc.org

Change-Id: I6f7097f308098e7922fbf0bed577bd69da4e1c61
Bug: webrtc:8278
Reviewed-on: https://webrtc-review.googlesource.com/26901
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20951}
diff --git a/sdk/android/api/org/webrtc/IceCandidate.java b/sdk/android/api/org/webrtc/IceCandidate.java
index 51865e9..eebc9d9 100644
--- a/sdk/android/api/org/webrtc/IceCandidate.java
+++ b/sdk/android/api/org/webrtc/IceCandidate.java
@@ -49,9 +49,4 @@
   String getSdp() {
     return sdp;
   }
-
-  @CalledByNative
-  static IceCandidate[] createArray(int size) {
-    return new IceCandidate[size];
-  }
 }
diff --git a/sdk/android/api/org/webrtc/StatsObserver.java b/sdk/android/api/org/webrtc/StatsObserver.java
index b1ad0de..b9984c1 100644
--- a/sdk/android/api/org/webrtc/StatsObserver.java
+++ b/sdk/android/api/org/webrtc/StatsObserver.java
@@ -13,5 +13,5 @@
 /** Interface for observing Stats reports (see webrtc::StatsObservers). */
 public interface StatsObserver {
   /** Called when the reports are ready.*/
-  public void onComplete(StatsReport[] reports);
+  @CalledByNative public void onComplete(StatsReport[] reports);
 }
diff --git a/sdk/android/api/org/webrtc/StatsReport.java b/sdk/android/api/org/webrtc/StatsReport.java
index b5396fc..b8f1cf8 100644
--- a/sdk/android/api/org/webrtc/StatsReport.java
+++ b/sdk/android/api/org/webrtc/StatsReport.java
@@ -17,6 +17,7 @@
     public final String name;
     public final String value;
 
+    @CalledByNative("Value")
     public Value(String name, String value) {
       this.name = name;
       this.value = value;
@@ -36,6 +37,7 @@
   public final double timestamp;
   public final Value[] values;
 
+  @CalledByNative
   public StatsReport(String id, String type, double timestamp, Value[] values) {
     this.id = id;
     this.type = type;