ScriptInfo: use null version for missing scripts

If a script file does not actually exist, we cannot hash its contents
nor obtain a last modified timestamp. So we return null for the version.

This avoids a nasty exception dump on the log in ScriptInfoTest.