[FIXED JENKINS-19515] Try to avoid truncation of fingerprint storage files.
1. Use AtomicFileWriter on the hypothesis that an exception during save() caused truncation.
2. Improve logging from the cleanup thread since that may be related to the root cause.
3. Regardless of the cause, recover more gracefully by deleting any truncated file rather than throwing the error up.
Merge REMERGE_HEAD into HEAD