Refactor and cleanup wakeup code
The code is currently quite messy and hard to understand: https://invent.kde.org/plasma-mobile/kclock/-/blob/master/src/kclockd/utilities.cpp
Should be refactored into an abstract base "wakeup provider", with the powerdevil and wait timer thread implementations being derived classes.