ignore cache files written by old versions

if the cache file was written by an old version, either the file will
fail to parse (fixed by the previous commit) or the key will not be
found because the version will be wrong.
fix "resource busy" introduced by previous commit

Due to laziness, we could determine that the cache file was no good
without reading all of it. This caused us to open the file while it was
still semi-closed, leading to a mysterious "resource busy" error.