Implement processor throttle dbus properties

- create processor throttle dbus objects for each OCC (processor)
- update throttle properties based on OCC poll response data
  or safe mode status.

Throttle data will be made available via Redfish

NAME                                       TYPE      SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable        interface -         -            -
.Introspect                                method    -         s            -
org.freedesktop.DBus.Peer                  interface -         -            -
.GetMachineId                              method    -         s            -
.Ping                                      method    -         -            -
org.freedesktop.DBus.Properties            interface -         -            -
.Get                                       method    ss        v            -
.GetAll                                    method    s         a{sv}        -
.Set                                       method    ssv       -            -
.PropertiesChanged                         signal    sa{sv}as  -            -
xyz.openbmc_project.Control.Power.Throttle interface -         -            -
.ThrottleCauses                            property  as        0            emits-change
.Throttled                                 property  b         false        emits-change

Example of throttled processor (due to a power limit):
as 1 "xyz.openbmc_project.Control.Power.Throttle.ThrottleReasons.PowerLimit"

Change-Id: I0af9d82fab9d694427d0adaa45f4a372d25fbc12
Signed-off-by: Chris Cain <cjcain@us.ibm.com>
diff --git a/occ_manager.cpp b/occ_manager.cpp
index 4833d5a..69d3bc9 100644
--- a/occ_manager.cpp
+++ b/occ_manager.cpp
@@ -114,6 +114,12 @@
                 }
                 statusObjCreated = true;
                 waitingForAllOccActiveSensors = true;
+
+                // Find/update the processor path associated with each OCC
+                for (auto& obj : statusObjects)
+                {
+                    obj->updateProcAssociation();
+                }
             }
         }
 
@@ -555,6 +561,11 @@
 #ifdef POWER10
     pmode->updateDbusSafeMode(safeMode);
 #endif
+    // Update the processor throttle status on dbus
+    for (auto& obj : statusObjects)
+    {
+        obj->updateThrottle(safeMode, THROTTLED_SAFE);
+    }
 }
 
 void Manager::sbeHRESETResult(instanceID instance, bool success)