Safely put back any cache entry that will not be used.

Attempts to address the root cause of a crash fault found and debugged
by "MARTINET Dominique" <dominique.martinet@cea.fr>.

The underlying issue appears to be that cache_inode_lru_unref is not
sufficient to return a new entry.  First, entry's refcnt is sentinel+1,
so the entry would remain queued.  Next, under appropriate conditions
the entry would eventually be seen by lru_reap_impl, which would attempt
to clean it, provoking the fault (since the entry was never set up).

Fix all these problems by simply creating a new cache_inode_lru_putback
function which recycles just such entries, and is assured not to race
with lru_reap_impl.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>