Fixes for purging stray

There are there main issues in the purging stray code.
1. The MDCache::trim() can trim stray from the cache.
2. Current method to purge stray is call MDCache::maybe_eval_stray() after releasing a reference to the stray   inode/dentry. This method is not reliable because there are so many places that can release reference. Some places are missed.
3. dirfrags are not purged when purging directory inode.

These issues can cause lots of unused inodes left in the stray directory.