ThermalControllers and FanControllers are derived objects from a common PID
Controller object.  The design implemented in this structure is a facsimile of
what was published in the Chrome OS source.

One has any number of ThermalControllers that run through a PID step to
generate a set-point RPM to reach its thermal set-point.  The maximum output
from the set of ThermalControllers is taken as the input to all the
FanController PID loops.

Each group of these controllers is managed within a zone.  A PIDZone object
helps manage them by providing a sensor value cache and overall execution.
