[gui] Add {add,remove}RegionSamplingListener

Adds addRegionSamplingListener and removeRegionSamplingListener to
ISurfaceComposer. This interface will allow a client to register to
receive an updated median luma value for a region bounded by a stop
layer (i.e., layers behind the stop layer) and the provided Rect any
time the display updates.

Multiple areas may be sampled, but they must use separate listeners, and
the layer traversal will stop at the stop layer with the lesser Z value.

Bug: 119639245
Test: New test in I152a9d72640e34e4f83959715cdea409929b9150
Change-Id: Ie420098781ddba02d6eb0d7039d0bf855c204231
diff --git a/libs/gui/tests/Surface_test.cpp b/libs/gui/tests/Surface_test.cpp
index bec9299..f127853 100644
--- a/libs/gui/tests/Surface_test.cpp
+++ b/libs/gui/tests/Surface_test.cpp
@@ -669,6 +669,16 @@
 
     status_t isWideColorDisplay(const sp<IBinder>&, bool*) const override { return NO_ERROR; }
 
+    status_t addRegionSamplingListener(const Rect& /*samplingArea*/,
+                                       const sp<IBinder>& /*stopLayerHandle*/,
+                                       const sp<IRegionSamplingListener>& /*listener*/) override {
+        return NO_ERROR;
+    }
+    status_t removeRegionSamplingListener(
+            const sp<IRegionSamplingListener>& /*listener*/) override {
+        return NO_ERROR;
+    }
+
 protected:
     IBinder* onAsBinder() override { return nullptr; }