Add GPU completion to FrameMetrics (1/3)

- Add SurfaceStatsCallback to TransactionCompletedListener
- Register a callback in RenderProxy to be called when we have
surface stats from SF via the BLAST callback.
- Instead of finishing a frame for frame metrics reporting
immediately, wait until BLAST callback fires, note GPU completion
time and finish frame.
- Expose GPU_COMPLETION in FrameMetrics
- Modify TOTAL_DURATION to also include GPU_COMPLETION

Test: FrameMetricsListenerTest
Fixes: 171046219
Change-Id: I16fa1d80cfc4e7a5527c18fec7e885409f17ee4d
diff --git a/native/android/Android.bp b/native/android/Android.bp
index 3daaf05..253ef67 100644
--- a/native/android/Android.bp
+++ b/native/android/Android.bp
@@ -88,7 +88,7 @@
         "libarect",
     ],
 
-    header_libs: [ "libhwui_internal_headers",],
+    header_libs: [ "libhwui_internal_headers", "libandroid_headers_private"],
 
     whole_static_libs: ["libnativewindow"],