Calculate settings file hash properly. Fixes #1497.

Previously we were hashing the Unicode string, not the bytes.

This also removes a race condition. Now there is only one use of
watchSet.addFile which does not go through
watch.readAndWatchFile (adding package.js hashes to multiple watch sets
at once), and that use does correctly hash the bytes.