cobalt/posix/timer: fix CPU affinity tracking
Timers may have specific CPU affinity requirements in that their backing clock device might not beat on all available CPUs, but only on a subset of them. The CPU affinity of every timer bound to a particular thread has to be tracked each time such timer is started, so that no core timer is queued to a per-CPU list which won't receive any event from the backing clock device. Such tracking was missing for timerfd and POSIX timers, along with internal timers running the sporadic scheduling policy. At this chance, the timer affinity code was cleaned up by folding all the affinity selection logic into a single call, i.e. xntimer_set_affinity().