cpu: fix undefined self-initialization in scan_cpuid()

Reported by clang 3.3. The Intel manual isn't too clear on what the heck CPUID
page 2 is supposed to actually do, so even this code might not actually work.
testbench: add benchmark for thread creation and joining

Another application-ey benchmark. Apparently threads can be joined in at
minimum 10k cycles, and started in 30k (under core2 KVM). Seems pretty fast.
testbench: remove top comment from benchmark.c, #if 0s from thread.c

So apparently this codebase has TODO rot.
thread: clear TF_SYSCALL when IP is set by ExchangeRegisters
testbench: recognize segv from mgr_tid in forkserv

Otherwise it ends up looping. Apparently an error return from the IDL stub
doesn't do the trick after all.

Also, generate the segv exit code in t_segv(), and update uncaught_segv_test
to match the new segfault reporting style.
test: self: verify process-level segfault returns from wait()

That's to say: for a dead child, *st_p should be set to have the low 4 bits
equal to 0x7. The other bits are the 16-byte grain address of the fault. This
should happen both when the last thread dies, and when the thread manager
thread bites the dust.