PEL: MTMS: Support const flattening

Future commits will eventually make every flatten function const, as
they should be since flattening an object should not affect it.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I285963805800b29163c5a3979a33590f64c03d00
diff --git a/extensions/openpower-pels/mtms.cpp b/extensions/openpower-pels/mtms.cpp
index 9f4144e..3ef8e87 100644
--- a/extensions/openpower-pels/mtms.cpp
+++ b/extensions/openpower-pels/mtms.cpp
@@ -62,7 +62,7 @@
     }
 }
 
-Stream& operator<<(Stream& s, MTMS& mtms)
+Stream& operator<<(Stream& s, const MTMS& mtms)
 {
     for (size_t i = 0; i < MTMS::mtmSize; i++)
     {
@@ -79,16 +79,23 @@
 
 Stream& operator>>(Stream& s, MTMS& mtms)
 {
+    std::array<uint8_t, MTMS::mtmSize> mtm;
+
     for (size_t i = 0; i < MTMS::mtmSize; i++)
     {
-        s >> mtms.machineTypeAndModelRaw()[i];
+        s >> mtm[i];
     }
 
+    mtms.setMachineTypeAndModel(mtm);
+
+    std::array<uint8_t, MTMS::snSize> sn;
     for (size_t i = 0; i < MTMS::snSize; i++)
     {
-        s >> mtms.machineSerialNumberRaw()[i];
+        s >> sn[i];
     }
 
+    mtms.setMachineSerialNumber(sn);
+
     return s;
 }
 } // namespace pels