Two regression fixes for the timer and timer migration code:

  1) Prevent endless timer requeuing which is caused by two CPUs racing out
     of idle. This happens when the last CPU goes idle and therefore has to
     ensure to expire the pending global timers and some other CPU come out
     of idle at the same time and the other CPU wins the race and expires
     the global queue. This causes the last CPU to chase ghost timers
     forever and reprogramming it's clockevent device endlessly.

     Cure this by re-evaluating the wakeup time unconditionally.

  2) The split into local (pinned) and global timers in the timer wheel
     caused a regression for NOHZ full as it broke the idle tracking of
     global timers. On NOHZ full this prevents an self IPI being sent which
     in turn causes the timer to be not programmed and not being expired on
     time.

     Restore the idle tracking for the global timer base so that the self
     IPI condition for NOHZ full is working correctly again.