Give temporary names to the temporary files to prevent race conditions.

In a race condition, multiple browscap instances could be simultaneously running before the lock file is created (due to the fact that the lock isn't an exclusive one). This should prevent any weirdness from happening due to writing to the same file. I also changed instances of time() to microtime() for the same reason.

I don't know if this makes the cachePropertiesFilename, cacheBrowserFilename, etc properties useless, but I kept them there anyway.