Fix problems introduced by PR2496 (check dir exists use dircache)

in https://github.com/xbmc/xbmc/pull/2496 I didn't make sure the calling cache dir path ends with slash, which will cause the cache report false for subdir in it.
beside, there's SubstitutePath code in the CDirectory::Exists, it should be called before check the cache.
This PR fixed these 2 problems.