SF: Add new fields to transactions proto

- track layer handle removal so layer lifecycle
  can be recreated accurately when rebuilding layer
  state
- track buffer format since it affects opacity
- track transaction ids to track transactions
  across the system
- also fixes relative z tracking

Test: atest TransactionProtoParserTest
Bug: 200284593
Change-Id: I037e40219f9fee8957051352beeba88681b8cf43
diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h
index 0d2618a..4cdd8fa 100644
--- a/services/surfaceflinger/Layer.h
+++ b/services/surfaceflinger/Layer.h
@@ -565,6 +565,9 @@
     virtual uint32_t getBufferTransform() const { return 0; }
 
     virtual sp<GraphicBuffer> getBuffer() const { return nullptr; }
+    virtual const std::shared_ptr<renderengine::ExternalTexture>& getExternalTexture() const {
+        return mDrawingState.buffer;
+    };
 
     virtual ui::Transform::RotationFlags getTransformHint() const { return ui::Transform::ROT_0; }