Re-implement the buffer queues with a number of independent silos each
having their own space allotment and bufspace daemon.
Use a per-cpu clean queue cache in front of the silo clean queue.
Move the common queue variables (queue, len, lock) into a structure so they
can be aligned and packed together.
Implement a REUSE flag to operate as a second chance in buf_recycle() so
we don't have to requeue frequently re-used buffers.
Move counters to the counter API.