Switch PersistedCounter over to using a PersistentStorageDelegate. (#17377)

diff --git a/src/app/EventManagement.cpp b/src/app/EventManagement.cpp
index 6cb20a2..6ee98aa 100644
--- a/src/app/EventManagement.cpp
+++ b/src/app/EventManagement.cpp
@@ -82,32 +82,9 @@
     EventLoadOutContext * mpContext = nullptr;
 };
 
-void EventManagement::InitializeCounter(Platform::PersistedStorage::Key * apCounterKey, uint32_t aCounterEpoch,
-                                        PersistedCounter * apPersistedCounter)
-{
-    PersistedCounter * eventNumberCounter = nullptr;
-    if (apPersistedCounter != nullptr && apCounterKey != nullptr && aCounterEpoch != 0)
-    {
-        eventNumberCounter =
-            (apPersistedCounter->Init(*apCounterKey, aCounterEpoch) == CHIP_NO_ERROR) ? apPersistedCounter : nullptr;
-    }
-
-    if (eventNumberCounter == nullptr)
-    {
-        mNonPersistedCounter.Init(0);
-        mpEventNumberCounter = &(mNonPersistedCounter);
-    }
-    else
-    {
-        mpEventNumberCounter = eventNumberCounter;
-    }
-    mLastEventNumber = mpEventNumberCounter->GetValue();
-}
-
 void EventManagement::Init(Messaging::ExchangeManager * apExchangeManager, uint32_t aNumBuffers,
                            CircularEventBuffer * apCircularEventBuffer, const LogStorageResources * const apLogStorageResources,
-                           Platform::PersistedStorage::Key * apCounterKey, uint32_t aCounterEpoch,
-                           PersistedCounter * apPersistedCounter)
+                           MonotonicallyIncreasingCounter * apEventNumberCounter)
 {
     CircularEventBuffer * current = nullptr;
     CircularEventBuffer * prev    = nullptr;
@@ -140,7 +117,8 @@
         current->mAppData               = nullptr;
     }
 
-    InitializeCounter(apCounterKey, aCounterEpoch, apPersistedCounter);
+    mpEventNumberCounter = apEventNumberCounter;
+    mLastEventNumber     = mpEventNumberCounter->GetValue();
 
     mpEventBuffer = apCircularEventBuffer;
     mState        = EventManagementStates::Idle;
@@ -357,12 +335,10 @@
 void EventManagement::CreateEventManagement(Messaging::ExchangeManager * apExchangeManager, uint32_t aNumBuffers,
                                             CircularEventBuffer * apCircularEventBuffer,
                                             const LogStorageResources * const apLogStorageResources,
-                                            Platform::PersistedStorage::Key * apCounterKey, uint32_t aCounterEpoch,
-                                            PersistedCounter * apPersistedCounter)
+                                            MonotonicallyIncreasingCounter * apEventNumberCounter)
 {
 
-    sInstance.Init(apExchangeManager, aNumBuffers, apCircularEventBuffer, apLogStorageResources, apCounterKey, aCounterEpoch,
-                   apPersistedCounter);
+    sInstance.Init(apExchangeManager, aNumBuffers, apCircularEventBuffer, apLogStorageResources, apEventNumberCounter);
 }
 
 /**
@@ -893,10 +869,9 @@
                                CircularEventBuffer * apNext, PriorityLevel aPriorityLevel)
 {
     CHIPCircularTLVBuffer::Init(apBuffer, aBufferLength);
-    mpPrev               = apPrev;
-    mpNext               = apNext;
-    mPriority            = aPriorityLevel;
-    mpEventNumberCounter = nullptr;
+    mpPrev    = apPrev;
+    mpNext    = apNext;
+    mPriority = aPriorityLevel;
 }
 
 bool CircularEventBuffer::IsFinalDestinationForPriority(PriorityLevel aPriority) const