The cache isn't cleared properly because unlink() doesn't remove the
cache entry which caused side-effects when reusing the same file name
(which randomly happens when time() returns the same value)
This fix first makes sure the unit tests don't fail any more.
The unlink() case with the cache will be investigated separately.
If the file does not exist, realpath() returns false and "include false;"
produces "Failed opening '' for inclusion" which is a useless error message.
'include' works just fine with symlinks, "./" and "../".