Fix a bug where the main system clock stops operating. We were using a field
in the globaldata structure called gd_nextclock to determine whether a systimer
was queued for a cpu. This field indicated the next pending timeout for the
systimer on the cpu. However, at 8254 rates this 32 bit field has a chance of
calculating to 0 once every 1/18 second, which disables the systimer dispatch
on that cpu and can cause the system clocks to stop operating.
Remove the field and replace with a TAILQ_FIRST queue check instead.
The machine dependant part of the systimer implementations needs a better
way to figure out which cpus to dispatch to.
Reported-by: justin@shiningsilence.com