Replace FSAL_ESTALE, KILLED, and DEAD_ENTRY CACHE_INODE and STATE errors with ESTALE

These three errors all mean the same thing, so just use CACHE_INODE_ESTALE
and STATE_ESTALE.

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
Introduce return value to cache_inode_lru_ref to prevent new refs to stale entry

If a cache inode is stale (dead), we should prevent handing out additional
references where possible.

We add a new flag, LRU_REQ_STALE_OK, for those cases for which we need to take
a reference anyway. Also, this flag is temporarily used for cases where dealing
with the failure to get a reference is not easy. These cases WILL be fixed in
later patches (but use of this flag allows us to introduce the feature without
making things any worse). There will be at least one place where this flag will
still be useful.

When LRU_REQ_INITIAL is set, we always allow taking the reference since this
flag is only uses when the cache inode is initially found via the hash table
and thus should be valid (or at least was valid a moment ago).

If LRU_REQ_STALE_OK or LRU_REQ_INITIAL flags are used, the only possible
return is CACHE_INODE_SUCCESS thus it is legitimate to ignore the return
value.

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
Move dead entry cleanup to any unref as long as LRU_UNREF_QLOCKED is not set.

Make sure we only perform the cleanup once.

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>