control: action to override a single fan in a zone - ability to lock Fan

This change modifies Fan to accept one or more override targets which
prevent Fan from accepting regular target updates until all locks have
been cleared using unlockTarget().

Multiple locks are supported, however only the higest locked target will
ever be active. For instance, if targets are locked at 9000 and 10000
(in either order), the 10000 lock will be active until it is cleared, at
which point the 2nd lowest lock (9000) will become active. When it is
cleared, Fan will become unlocked and resume its target from temperature
control. If the first locked target happens to be lower than its current
target, the lock will take precedence even though it's lower.

Signed-off-by: Mike Capps <mikepcapps@gmail.com>
Change-Id: Iba73aa06eed25452117eb138768ed300bc45b0d9
2 files changed