daemon: Move brightness animation logic into DDCutilDisplay
This gets us closer to supporting brightness controls for multiple
monitors individually. DDCutilDisplay
gets a very similar API as
the recently introduced BacklightBrightness
(which represents a
single backlit display). ScreenBrightnessController
still has
separate codepaths for both, but they look essentially the same now.
In the future, this will allow us to derive both DDCutilDisplay
and
BacklightBrightness
from the same display base class and make
ScreenBrightnessController
work with a list of such objects. (Note: If you're interested in those follow-ups, I'm putting them on separate branches - first batch: work/jpetso/screenbrightness-display-list, second batch: work/jpetso/backlight-schism - until this is merged.)
Continues working without DDC, but untested with DDC so far because I'm currently away from my regular monitor for a few weeks. Hopefully I can get access to one that supports DDC so I can test it there. Should be fine because it's just a refactoring of existing code, but who knows what bugs I'm sneakily introducing.