control: Add event configuration class framework

The event class will contain the configuration for each event that
results in altering how fan control functions. Events continue to be
optional, where no events configured result in no fan speed changes.
Events are made up of groups of sensors, triggers from those sensors,
and actions to be run when a trigger occurs. Events may also have a
precondition that must exist before the event is loaded into fan
control. The triggers, actions, and preconditions configured must be
available within the fan control application.

Tested:
    Event JSON configuration able to be loaded
    Event objects created, each with the name configured
    Required event base attributes exist otherwise throw exception

Change-Id: I8a3d116522c78fafa3b3e9a37a63bb8262802a98
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
4 files changed