cache_inode_readdir: discriminate failure causes in populate callback & fix log levels

The only two reasons to bail early are out of memory, or trying to add dirents
to an entry that's not a directory (so a cache inode incoherence problem)