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
3 jobs for master in 6 minutes and 39 seconds
Status Job ID Name Coverage
  Build
passed #2016382
mingw-build

00:05:31

passed #2016380
shared-build

00:06:39

passed #2016381
static-build

00:04:59