Use one-shot timer in scheduler of Timed_semaphore

Instead of counting jiffies, and sleep periodically, thereby choosing a
specific granularity for timeouts, just program the timer everytime a new
alarm is scheduled, or if the timer triggered, and there are still outstanding
alarms.

Fix #35