PEL: Const accessors for Private/UserHeader

Change the combined non-const accessor/setter functions for the
PrivateHeader and UserHeader fields to the standard const accessors, and
have separate setters for the fields that need to be modified.

In addition, make the 'get PrivateHeader' and 'get UserHeader' functions
on the PEL class return a const reference.

This allows const enforcement on the PEL class, for things like:

void func(const PEL& pel)
{
    auto id = pel.privateHeader().id();
}

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I840170e72b41e9e2465f716617500269244de6d9
diff --git a/test/openpower-pels/real_pel_test.cpp b/test/openpower-pels/real_pel_test.cpp
index ec5282d..59cc84e 100644
--- a/test/openpower-pels/real_pel_test.cpp
+++ b/test/openpower-pels/real_pel_test.cpp
@@ -537,7 +537,7 @@
     // Check that the code can extract an object for every section.
     //(The PrivateHeader and UserHeader account for the + 2 below.)
     const auto& sections = pel.optionalSections();
-    EXPECT_EQ(pel.privateHeader()->sectionCount(), sections.size() + 2);
+    EXPECT_EQ(pel.privateHeader().sectionCount(), sections.size() + 2);
 
     auto src = pel.primarySRC();
     EXPECT_EQ(src.value()->asciiString(), "B181A80E                        ");