Set hasher on newly created scripts (Fix #12258)

The hash for non-official scripts was being correctly
set, but not the hasher itself. The check on save in
RawFileBean.java does nothing if a hasher is missing.
Re-use lookup code for `script replace`

Other methods were allowing the use of either
the file name or the file id, but not replace.
This should allow now changing an official
script without modifying the hash. Whether or
not this is a good idea is another matter.
Update output to match obj.py
Merge pull request #2466 from joshmoore/12258-script-hashers

12258 script hashers