When hashes are on, use SHA1 hashes to decide if a file needs to be upda...

...ted.  The hash is now computed from the hashes of its input files instead of from the output file contents, which means it only changes when the input files change.  When trying to decide whether to update a file we can check whether its computed filename differs from its previously saved filename in the json file.