psu-ng: Updates to allow PSU missing on startup

If the power supply is missing when the application starts up, the
created PMBus interface will log an INFO message about being unable to
read any of the sysfs files. Allow that informational message to occur,
but in the inventoryChange() interface, when the power supply goes
present, be sure to call the findHwmonDir() function to update the
directory/file changes that may occur when the device driver binds.

Tested:
    Use simulator to verify no changes when both present and chassison.
    Use simulator to mark 2nd PSU missing, restart application, mark 2nd
    PSU as present and verify no PSU communication problems.
    Use simulator to mark 1st PSU missing, restart application, mark 1st
    PSU present and verify no PSU communication problems.
    Use simulator to chassison with PSU missing, then change PSU
    present, verify no errors.
    Use simulator to chassison with PSUs present, mark PSU missing, then
    PSU present, verify no errors.

Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
Change-Id: Iba1c8296167519e7285eb680ab067bfb6046b4c7
diff --git a/pmbus.hpp b/pmbus.hpp
index 6f5b91f..ea2b297 100644
--- a/pmbus.hpp
+++ b/pmbus.hpp
@@ -145,6 +145,7 @@
     virtual std::string readString(const std::string& name, Type type) = 0;
     virtual void writeBinary(const std::string& name, std::vector<uint8_t> data,
                              Type type) = 0;
+    virtual void findHwmonDir() = 0;
     virtual const fs::path& path() const = 0;
 };
 
@@ -334,7 +335,7 @@
      * Finds the path relative to basePath to the hwmon directory
      * for the device and stores it in hwmonRelPath.
      */
-    void findHwmonDir();
+    void findHwmonDir() override;
 
     /**
      * Returns the path to use for the passed in type.