control: Add power on/off triggers

Add two new classes of triggers: powerOn and powerOff.  They are only
called during the power on and power off state changes, respectively.

They behave the same as the existing init trigger.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I9d39210843192b9c343c7838c604fcce7c8d3f3d
diff --git a/control/json/event.hpp b/control/json/event.hpp
index 78bc633..e4e01ea 100644
--- a/control/json/event.hpp
+++ b/control/json/event.hpp
@@ -79,6 +79,16 @@
     void enable();
 
     /**
+     * @brief Call any power on triggers
+     */
+    void powerOn();
+
+    /**
+     * @brief Call any power off triggers
+     */
+    void powerOff();
+
+    /**
      * @brief Clear all groups available for events
      */
     static void clearAllGroups()
@@ -147,8 +157,8 @@
     /* List of actions for this event */
     std::vector<std::unique_ptr<ActionBase>> _actions;
 
-    /* List of trigger enablement functions for this event */
-    std::vector<trigger::enableTrigger> _triggers;
+    /* List of trigger type and enablement functions for this event */
+    std::vector<std::tuple<std::string, trigger::enableTrigger>> _triggers;
 
     /* All groups available to be configred on events */
     static std::map<configKey, std::unique_ptr<Group>> allGroups;