monitor: Create PowerOffCause class hierarchy

The PowerOffCause base class and its derived classes will be used to
determine when a power off needs to be done based on fan failures.

The 'satisified()' method, which takes the fan health map, is used to
say if the cause is satisfied and a shut down will need to occur.

It provides two types of causes:
* MissingFanFRUCause - Looks at missing fan FRUs
* NonfuncFanRotorCause - Looks at nonfunctional rotors (sensors)

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I3c43347782dc559eb7c7441bf9c03d3407b248e2
6 files changed