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/extensions/openpower-pels/manager.hpp b/extensions/openpower-pels/manager.hpp
index e57be98..3134f23 100644
--- a/extensions/openpower-pels/manager.hpp
+++ b/extensions/openpower-pels/manager.hpp
@@ -2,6 +2,8 @@
 
 #include "elog_entry.hpp"
 #include "log_manager.hpp"
+#include "paths.hpp"
+#include "repository.hpp"
 
 namespace openpower
 {
@@ -28,7 +30,8 @@
      *
      * @param[in] logManager - internal::Manager object
      */
-    explicit Manager(internal::Manager& logManager) : _logManager(logManager)
+    explicit Manager(internal::Manager& logManager) :
+        _logManager(logManager), _repo(getPELRepoPath())
     {
     }
 
@@ -96,6 +99,11 @@
      * @brief Reference to phosphor-logging's Manager class
      */
     internal::Manager& _logManager;
+
+    /**
+     * @brief The PEL repository object
+     */
+    Repository _repo;
 };
 
 } // namespace pels