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
7 files changed