entity-manager: create class PowerStatusMonitor

Removing following global variables
```
// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
static bool powerStatusOn = false;
// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
static std::unique_ptr<sdbusplus::bus::match_t> powerMatch = nullptr;
```
and placing them in a new class PowerStatusMonitor.

class PowerStatusMonitor is a member of class EntityManager and
inherits its lifetime. So there should be no issue with the lifetime
compared to the global variable.

Tested: Inspection only.

Change-Id: Ibdd9eb3adb6655d88c90c2da8435912887ff547c
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/src/entity_manager/power_status_monitor.hpp b/src/entity_manager/power_status_monitor.hpp
new file mode 100644
index 0000000..29840e2
--- /dev/null
+++ b/src/entity_manager/power_status_monitor.hpp
@@ -0,0 +1,26 @@
+#pragma once
+
+#include <sdbusplus/asio/connection.hpp>
+#include <sdbusplus/bus/match.hpp>
+
+namespace power
+{
+
+const static constexpr char* busname = "xyz.openbmc_project.State.Host";
+const static constexpr char* interface = "xyz.openbmc_project.State.Host";
+const static constexpr char* path = "/xyz/openbmc_project/state/host0";
+const static constexpr char* property = "CurrentHostState";
+
+class PowerStatusMonitor
+{
+  public:
+    bool isPowerOn();
+    void setupPowerMatch(
+        const std::shared_ptr<sdbusplus::asio::connection>& conn);
+
+  private:
+    bool powerStatusOn = false;
+    std::unique_ptr<sdbusplus::bus::match_t> powerMatch = nullptr;
+};
+
+} // namespace power