Move NEW_BUFQ_STRATEGY to misc options section.
Re-do the following revisions, this time on a branch where they won't
interfere with the nathanw_sa merge:

syssrc/sys/arch/arm/arm32/cpuswitch.S			1.26
syssrc/sys/arch/arm/arm32/genassym.cf			1.18
syssrc/sys/arch/arm/arm32/vm_machdep.c			1.21
syssrc/sys/arch/arm/include/pcb.h			1.5

Original commit message:

In cpu_switch(), stack more registers at the start of the function,
and hence save fewer into the PCB.  This should give me enough free
registers in cpu_switch to tidy things up and support MULTIPROCESSOR
properly.  While we're here, make the stacked registers into an
APCS stack frame, so that DDB backtraces through cpu_switch() will
work.

This also affects cpu_fork(), which has to fabricate a switchframe and
PCB for the new process.
Redo the following revision:
syssrc/sys/arch/arm/arm32/cpuswitch.S		1.27

Original log message:

The grand cpu_switch register reshuffle!

In particular, use r8 to hold the old process, and r7 for medium-term
scratch, saving r0-r3 for things we don't need saved over function
calls.  This gets rid of five register-to-register MOVs.
Reshuffle register usage in cpu_exit along the lines of cpu_switch to
reduce saving and restoring of registers.
In cpu_switch and cpu_exit, use curcpu to find curproc and curpcb, rather
than assuming CPU 0.  Also fix a register-shuffling botch in cpu_exit.
Lock the kernel when handling page faults and undefined instructions.
In cpu_attach(), allocate an idle PCB if the CPU doesn't already have one
(which the boot CPU won't).
Switch to the idle PCB in the idle loop.
Actually throw newly-booted CPUs into cpu_switch() to see if they can do
anything.  They don't seem to (well, one ends up running the pagedaemon,
allegedly), but I don't get a crash.
Reinstate .Lextirq_return: it was used in two places, and I only removed one
of them.
Add CI_IDLEPCB for cpu_switch().
Remove DEBUG check for pcb != curpcb.  This can legitimately occur if
curpcb == NULL and curproc == NULL on entry.  At least, I think it's
legitimate.
Flush the cache before reading sched_whichqs.  This is entirely the wrong
way to do this, but it should work (very slowly) until I work out the
right way.
Sync with trunk.
Dropping new CPUs into cpu_switch() now causes horrible crashes (they try
to actually do something -- disgraceful!), so don't let them go in there.
Add a little comment indicating where to get the Hydra documentation.
Catch up with -current.
Catch up to -current.