regulators: Add detectPhaseFaults() to System

Add a detectPhaseFaults() method to the System class.  This method
detects redundant phase faults in all regulator devices in the system.

Add a gtest test case to exercise the new code.

Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
Change-Id: I61b897b6b563280a2c0440aa2f35f3eb6c5de232
diff --git a/phosphor-regulators/src/system.cpp b/phosphor-regulators/src/system.cpp
index a36d1ee..6332686 100644
--- a/phosphor-regulators/src/system.cpp
+++ b/phosphor-regulators/src/system.cpp
@@ -70,6 +70,15 @@
     }
 }
 
+void System::detectPhaseFaults(Services& services)
+{
+    // Detect phase faults in regulator devices in each chassis
+    for (std::unique_ptr<Chassis>& oneChassis : chassis)
+    {
+        oneChassis->detectPhaseFaults(services, *this);
+    }
+}
+
 void System::monitorSensors(Services& services)
 {
     // Monitor sensors in each chassis
diff --git a/phosphor-regulators/src/system.hpp b/phosphor-regulators/src/system.hpp
index 16100c2..caa3804 100644
--- a/phosphor-regulators/src/system.hpp
+++ b/phosphor-regulators/src/system.hpp
@@ -93,6 +93,15 @@
     void configure(Services& services);
 
     /**
+     * Detect redundant phase faults in regulator devices in the system.
+     *
+     * This method should be called every 15 seconds.
+     *
+     * @param services system services like error logging and the journal
+     */
+    void detectPhaseFaults(Services& services);
+
+    /**
      * Returns the chassis in the system.
      *
      * @return chassis