FilesystemCache sanitizes filenames before writing

Using the provided filename as the prefix for tempnam() lead to not being able to write the cache file if the filename had illegal characters. Characters other than letters, numbers, dashes, underscores, and full stops are now replaced with a dash.
@joe-walker can you actually add those test cases to the file cache test suite at https://github.com/doctrine/cache/blob/912e8a11ce3c75a630b225dd82aed83e00943ed5/tests/Doctrine/Tests/Common/Cache/FileCacheTest.php and https://github.com/doctrine/cache/blob/912e8a11ce3c75a630b225dd82aed83e00943ed5/tests/Doctrine/Tests/Common/Cache/FilesystemCacheTest.php ? 

As from your description, `tempnam()` is indeed fixing the problem partially, but we still need a test case (the ones you described are indeed valid) validating the fix and preventing regressions in future changes.