Add support for caching events to the `AttributeCache` (#17030)

* s/AttributeCache/ClusterStateCache/g in preparation of the event caching getting subsumed

* Add EventCaching support to the ClusterStateCache.

* Review feedback

* Reverted the rename of the Darwin files for now since it was starting to get a bit out of hand

* Apply suggestions from code review

Co-authored-by: Boris Zbarsky <bzbarsky@apple.com>

* Review feedback

Co-authored-by: Boris Zbarsky <bzbarsky@apple.com>
diff --git a/src/app/ConcreteEventPath.h b/src/app/ConcreteEventPath.h
index 92dc185..3909b84 100644
--- a/src/app/ConcreteEventPath.h
+++ b/src/app/ConcreteEventPath.h
@@ -45,6 +45,12 @@
 
     bool operator!=(const ConcreteEventPath & aOther) const { return !(*this == aOther); }
 
+    bool operator<(const ConcreteEventPath & path) const
+    {
+        return (mEndpointId < path.mEndpointId) || ((mEndpointId == path.mEndpointId) && (mClusterId < path.mClusterId)) ||
+            ((mEndpointId == path.mEndpointId) && (mClusterId == path.mClusterId) && (mEventId < path.mEventId));
+    }
+
     EventId mEventId = 0;
 };
 } // namespace app