tweak semantics of store_assign

Require the location being assigned to to have the same type as the
value being assigned. I already did this in intLang but it turns out it
wasn't guaranteed by the source language, and I think it should be.
This commit also updates most of the proofs in the various ILs for this
change.
fix broken proofs in intLangProofScript.sml