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/configure.ac b/configure.ac
index 3b16f84..2af3e09 100644
--- a/configure.ac
+++ b/configure.ac
@@ -207,6 +207,12 @@
                  ["$PYTHON \${top_srcdir}/monitor/gen-fan-monitor-defs.py \
                   -m $FAN_MONITOR_YAML_FILE"])
     ])
+
+    AC_ARG_VAR(NUM_MONITOR_LOG_ENTRIES, [Maximum number of entries in the message log])
+    AS_IF([test "x$NUM_MONITOR_LOG_ENTRIES" == "x"], [NUM_MONITOR_LOG_ENTRIES=75])
+    AC_DEFINE_UNQUOTED([NUM_MONITOR_LOG_ENTRIES], [$NUM_MONITOR_LOG_ENTRIES],
+                       [Maximum number of entries in the message log])
+
     AC_CONFIG_FILES([monitor/Makefile])
 ])