 - Share scheduler locks between hyper-threaded cores to protect the    tdq_group structure.  Hyper-threaded cores won't really benefit from    seperate locks anyway.  - Seperate out the migration case from sched_switch to simplify the main    switch code.  We only migrate here if called via sched_bind().  - When preempted place the preempted thread back in the same queue at    the head.  - Improve the cpu group and topology infrastructure.
 - Share scheduler locks between hyper-threaded cores to protect the
   tdq_group structure.  Hyper-threaded cores won't really benefit from
   seperate locks anyway.
 - Seperate out the migration case from sched_switch to simplify the main
   switch code.  We only migrate here if called via sched_bind().
 - When preempted place the preempted thread back in the same queue at
   the head.
 - Improve the cpu group and topology infrastructure.

Tested by:	many on current@
Approved by:	re

jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase