Trace all InputListener stages

InputListeners were previously traced using QueuedInputListener, which
only served as a point trace of an event being processed.

In the new approach, we add a wrapper around all of the stages so that
we can get an idea of how long each stage took to process an event.

Bug: 210460522
Test: manual with perfetto
Change-Id: I4da2cff3ffec1c881978ee72d4b870a54b6d02c9
diff --git a/services/inputflinger/InputManager.h b/services/inputflinger/InputManager.h
index 528d2aa..51d582f 100644
--- a/services/inputflinger/InputManager.h
+++ b/services/inputflinger/InputManager.h
@@ -137,6 +137,8 @@
     std::unique_ptr<InputDispatcherInterface> mDispatcher;
 
     std::shared_ptr<IInputFlingerRust> mInputFlingerRust;
+
+    std::vector<std::unique_ptr<TracedInputListener>> mTracingStages;
 };
 
 } // namespace android