Create the CompiledIndexCacheDirectory if it does not exist.

Fix of: http://issues.hibernatingrhinos.com/issue/RavenDB-2240

Notes:
 - GetIndexCacheDir - will always make sure the returned directory always exists (even when it falls back to IndexStoragePath)
 - Because of the above TryGetDiskCacheResult no longer needs to verify and create the directory if it doesn't exist