Fix assertion in FcCacheFini() again
The previous fix in fbc05949 was wrong. reverting.
When reading older caches, FcDirCacheMapHelper() returns FcFalse and it became the return value from FcDirCacheProcess() too, which is wrong. Actually one of calls for FcDirCacheMapHelper() should be successfully finished and closure should have a valid pointer for cache.
Due to this, the proper finalization process wasn't running against cache in closure.
Fixes #227 (closed)