sched/core: Rewrite and improve select_idle_siblings()