Remove non-trivial constructors/destructors from SystemProperties

With the goal of disallowing exit time destructors, SystemProperties's
non-trivial destructor needs to be removed.  This means replacing the
union hack with yet another hack as we don't want to allocate anything
despite relying on some polymorphism.

Bug: 73485611
Test: boot bullhead
Change-Id: I64223714c9b26c9724bfb8f3e2b0168e47b56bc8
diff --git a/benchmarks/property_benchmark.cpp b/benchmarks/property_benchmark.cpp
index 9868765..17e37b0 100644
--- a/benchmarks/property_benchmark.cpp
+++ b/benchmarks/property_benchmark.cpp
@@ -98,7 +98,7 @@
       return;
     }
 
-    system_properties_.contexts()->FreeAndUnmap();
+    system_properties_.contexts_->FreeAndUnmap();
 
     for (int i = 0; i < nprops; i++) {
       delete names[i];