kernel - Fix several bugs in FAIRQ
* Fix several possible overflows due to high-valued machclk_freq constants
and uint's that should have been uint64's. Among other things this fixes
bandwidth calculations that could previously get into weird states.
* Refactor the fairq_selectq() routine to fix numerous cases where the
head of the queue could get advanced multiple times without pulling a
packet off the queue, causing packets in queues to be excessively
delayed.
Both of these were rather serious issues. Operation is far smoother with
the bugs fixed.