Refactor cache predicates for `file-exists-p'

** DON'T MERGE THIS YET **

When done, it'll fix #521

@thomasf: can you review and green-light this commit?

If yes, I'll apply the same for `projectile-project-root`