unix: implement a better threadpool

Split the threadpool in two: a small one for CPU-bound workloads and
a large one for I/O-bound workloads.

The CPU threadpool has approximately as many threads as there are CPUs
in the machine.

The I/O threadpool can have hundreds of threads, which is okay because
they should mostly be blocked in system calls.

I/O threads run on a reduced stack (32 kB) to avoid using up too much
virtual address space on 32 bits architectures.
test: fix 'buffer too small' fmt() warning
bench: fix up fs_stat
unix: make threadpool spiffier
test: remove 'is root?' check

I debug tests regularly as root (because dtrace and dtruss require the
additional privileges). The 'is root?' check gets in the way more often
than it prevents me from doing something silly. Remove it.