Draft: Introduce libclock
Designed as a simpler replacement to the datetime engine, with some key differences to the internals.
-
Tracking of the system timezone is handled internally and mostly abstracted, the caller gets information about the effective timezone regardless of whether it's the system or defined. This means we don't need to worry about using UTC and adding offsets in QML code.
-
Use absolute timers throughout; we're using timerfd for clock skew notifications anyway, we may as well use this to align timers on the minute rather than combining relative timers and guessing
-
Timezone ID (choosing Europe/Berlin) is external to this class, the resulting timezone (CET vs CEST) we try to handle internally and expose.
Backend timers are shared, front-end Clock classes are designed to be lightweight enough that we can have N classes for a tooltip with N timezones.