More robust copy of successfully parsed data files to cache during updates

Check result of renameTo() and use an alternative if it failed.

This is an underlying oddity of the JVM itself, in that if the renameTo() fails, it just returns false. 
Failures are caused by anything from crossing file systems or file exists (on some O/S). 

The JavaDoc and Google are full of people moaning :-)