monitor: Create PowerOffAction class hierarchy

The PowerOffAction base class and its derived classes will be used to
power off a system due to fan failures.

There are 3 types of power offs:
1. HardPowerOff - Do a hard power off after a delay
2. SoftPowerOff - Do a soft power off after a delay
3. EpowPowerOff - This isn't fully defined yet, but it will involve
                  powering off after setting an early power off warning
                  somehow and then waiting through 2 delays.

The code that makes the D-Bus calls to do the power offs is in a
standalone class so that it can be be mocked in testcases.

This code also makes use of the Logger class for logging, so this commit
brings that in as a singleton.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I83118963df4ec0b4f89619572f6935329eec3adb
diff --git a/monitor/logging.hpp b/monitor/logging.hpp
new file mode 100644
index 0000000..dbd2b8c
--- /dev/null
+++ b/monitor/logging.hpp
@@ -0,0 +1,13 @@
+#pragma once
+
+#include "logger.hpp"
+
+namespace phosphor::fan::monitor
+{
+/**
+ * @brief Returns the singleton Logger class
+ *
+ * @return Logger& - The logger
+ */
+Logger& getLogger();
+} // namespace phosphor::fan::monitor