This removes usage of CmptPrivate outside of ScriptInterface.
ScriptRequest can now be used to safely recover the scriptInterface from a JSContext instead of going through ScriptInterface, which allows more code cleanup.
This one is a little more dangerous than the other ones, I think I might need to split it.
Follows rP25366