print zone failsafe reason when enter failsafe mode

Tested:
```
Jun 24 01:52:45 bmc sel-logger[640]: cpu0_nbm critical high threshold assert. Reading=49.000000 Threshold=45.000000.
Jun 24 01:52:46 bmc swampd[2944]: Zone 2 fans, entering failsafe mode, output pwm: 100
Jun 24 01:52:46 bmc swampd[2944]: Fail sensor: cpu0_nbm, reason: Sensor threshold asserted
Jun 24 01:52:46 bmc swampd[2944]: Zone 0 fans, entering failsafe mode, output pwm: 100
Jun 24 01:52:46 bmc swampd[2944]: Fail sensor: cpu0_nbm, reason: Sensor threshold asserted
```

Signed-off-by: Harvey Wu <Harvey.Wu@quantatw.com>
Change-Id: I607d01b6bed11b00a40153db6521a9c9d23da519
diff --git a/dbus/dbuspassive.cpp b/dbus/dbuspassive.cpp
index 1d88b60..8e37d8e 100644
--- a/dbus/dbuspassive.cpp
+++ b/dbus/dbuspassive.cpp
@@ -248,6 +248,31 @@
     return false;
 }
 
+std::string DbusPassive::getFailReason(void) const
+{
+    if (_badReading)
+    {
+        return "Sensor reading bad";
+    }
+    if (_marginHot)
+    {
+        return "Margin hot";
+    }
+    if (_failed)
+    {
+        return "Sensor threshold asserted";
+    }
+    if (!_available)
+    {
+        return "Sensor unavailable";
+    }
+    if (!_functional)
+    {
+        return "Sensor not functional";
+    }
+    return "Unknown";
+}
+
 void DbusPassive::setFailed(bool value)
 {
     _failed = value;