Prototype for dcache.

This is highly experimental and needs lots of work, it is functional
but it lacks some interfaces and some important functionality.

from the source file:
/*
* This is heavily based on Dragonfly's objcache from Jeffrey M. Hsu.
*
* dcache is a lock/atomic-ops free object allocator on the fast path and
* spinlocked on the slow path.
*
* Each cpu holds always 2 magazines, each magazine holds MAG_CAPACITY
* objects. When one cpu requests an object, it looks into it's 'loaded'
* magazine, if it's empty, it swaps its 'loaded' magazine with the 'prev'
* magazine, if the new 'loaded' magazine is also empty, it enters the slow
* path. In slow path the cpu exchanges its empty magazine with a full loaded
* one from the global depot, to do it, it must acquire the depot lock. It is
* amortized since one slow path yields another MAG_CAPACITY fast paths.
*/