Fixed race conditions in FilesystemCache

In our environment (presumably because of the NFS) under high load after deployment, a lot of E_WARNINGs are emitted  because of race condition in mkdir() used in the FileSystemCache::save.

Fortunately I've seen a very good solution for this problem in the Twig library: https://github.com/fabpot/Twig/blob/master/lib/Twig/Environment.php :: writeCacheFile

I have copied and slightly adapted the cache write routine from Twig library. Hopefully it is allowed, with proper appreciation.
I renamed the variables because this required less changes in the code snippet from twig. I've noticed that this made the diff harder to read only after I made the PR. I'll change it.