Fix yet another bug when the system has no CPU 0. When created, threads
were implicitly assigned to CPU 0. This had no practical effect since a real
CPU was chosen immediately by the scheduler. However, on systems without a
CPU 0, sched_ule attempted to access the scheduler queue of the "old" CPU
when assigned the initial choice of the old one. This caused an attempt to
use illegal memory and a crash (or, more usually, a deadlock). Fix this by
assigned new threads to the BSP explicitly and add some asserts to see that
this problem does not recur.