PEL: Flatten PEL from objects

Now that the Generic section object has been introduced so there are
objects for every section, a flatten can be done by flattening every
object inside the PEL and the previous workaround to save the original
raw data can be removed.

This also adds a test case that uses a real PEL from a previous
generation of systems to flatten to give some better coverage than just
using hand coded PEL sections.

A side affect of this is that the PEL constructors that take the raw
data cannot take a const vector of data, as the Stream class that will
be used to read from the vector cannot take a const.  Testcases have
been updated to ensure this data is not modified.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I64ae1d1d4a742c80e14666d6b2a6e1e0efd5fd62
diff --git a/test/openpower-pels/Makefile.include b/test/openpower-pels/Makefile.include
index eacc6ae..f2e3126 100644
--- a/test/openpower-pels/Makefile.include
+++ b/test/openpower-pels/Makefile.include
@@ -11,6 +11,7 @@
 	pel_values_test \
 	pel_manager_test \
 	private_header_test \
+	real_pel_test \
 	registry_test \
 	repository_test \
 	section_header_test \
@@ -96,6 +97,15 @@
 	$(pel_objects)
 pel_test_LDFLAGS = $(test_ldflags)
 
+real_pel_test_SOURCES = \
+	%reldir%/real_pel_test.cpp %reldir%/paths.cpp %reldir%/pel_utils.cpp
+real_pel_test_CPPFLAGS = $(test_cppflags)
+real_pel_test_CXXFLAGS = $(test_cxxflags)
+real_pel_test_LDADD = \
+	$(test_ldadd) \
+	$(pel_objects)
+real_pel_test_LDFLAGS = $(test_ldflags)
+
 repository_test_SOURCES = \
 	%reldir%/repository_test.cpp %reldir%/paths.cpp %reldir%/pel_utils.cpp
 repository_test_CPPFLAGS = $(test_cppflags)