PEL: Add repository to save PELs

Create the Repository class that can save PELs in (and later retrieve
them from) the filesystem.  It provides an add() method that can add
a PEL object to the repository.

Now, when the Manager class sees an OpenBMC event log created with the
RAWPEL metadata in the AdditionalData property that points at a file
that contains a PEL, it can save that PEL.  Before the PEL is saved, the
log ID and commit timestamp fields in the PEL will be updated - the log
ID to a unique value, and the timestamp to the current time.

Change-Id: I8dbaddf0f155bcb6d40b933294ada83feb75ce53
diff --git a/test/openpower-pels/paths.cpp b/test/openpower-pels/paths.cpp
index 464b92c..27f4bce 100644
--- a/test/openpower-pels/paths.cpp
+++ b/test/openpower-pels/paths.cpp
@@ -22,5 +22,18 @@
     return idFile;
 }
 
+std::filesystem::path getPELRepoPath()
+{
+    static std::string repoPath;
+
+    if (repoPath.empty())
+    {
+        char templ[] = "/tmp/repopathtestXXXXXX";
+        std::filesystem::path dir = mkdtemp(templ);
+        repoPath = dir;
+    }
+    return repoPath;
+}
+
 } // namespace pels
 } // namespace openpower