Add more comments and ASSERTions in the cache allocator
It was clear from the thread at [1] that there is some confusion (including
my own) over the semantics of the slab list. Add some more comments and
ASSERTions to better explain.
Also turn a silly secondary 'if' into the 'else' clause it should have
always been.