By default, if the caller has not used one of the _on() or _cpucpu() variants of the callout API,
the system assigns the callout to CPU0. The problem (and benefit) of the this is
that this causes most callouts wind up on CPU0.
This is a benefit from a power perspective, since APs can stay more idle.
This is a drawback from the perspective of making it highly likely that a cheap, time
critical callout may land on the same core as an expensive callout. The bug that prompted
this was a nasty bug in a callout run by some non-upstream code that was taking way too long
and was occasionally delaying lacp_tick(), causing our lacp bundles to loose sync.
This change introduces a change to callout_init* where if kern.callout_roundrobin is set
to non-zero, callouts initialized after SMP startup are distributed among CPUs using
round-robin CPU selection.