Prepare a process context on secondary cpus earlier for critical sections.

Critical sections rely on incrementing/decrementing curproc->p_crit,
critical sections will be raised on every mutex_enter() and checked on
every interrupt, so that imposes us two restrictions:

* We need a "valid" curproc for mutexes (think of early printfs).
* We can't take interrupts before setting curproc.

Bootcpu is no problem, there is only one case and we can fix it later.
Secondary cpus are a problem since they do mtx_enter() and may take
interrupts before having a valid curproc (think of hardclock).
The solution for secondary cpus is having a fake process context on
cpu_hatch() and only enable interrupts on the first idle scheduling.