 - Bail out of tdq_idled if !smp_started or idle stealing is disabled.  This    fixes a bug on UP machines with SMP kernels where the idle thread    constantly switches after trying to steal work from the local cpu.  - Make the idle stealing code more robust against self selection.  - Prefer to steal from the cpu with the highest load that has at least one    transferable thread.  Before we selected the cpu with the highest    transferable count which excludes bound threads.
 - Bail out of tdq_idled if !smp_started or idle stealing is disabled.  This
   fixes a bug on UP machines with SMP kernels where the idle thread
   constantly switches after trying to steal work from the local cpu.
 - Make the idle stealing code more robust against self selection.
 - Prefer to steal from the cpu with the highest load that has at least one
   transferable thread.  Before we selected the cpu with the highest
   transferable count which excludes bound threads.

Collaborated with:	csjp
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