[trusted-types] Merge_js handles trust variables
[trusted-types] Merge_js handles trust variables

Summary:
This diff adds logic to `merge_js` to handle merging trust variables. It follows basically the same logic used to merge tvars: First, it resolves the trust var, which is easier than it is for tvars, since unresolved trust variables maintain their current trust status, and then it adds the var to a reduced trust graph and generates a stable ID.

Resolving a trust var just takes the current trust status and "fixes" it by substituting away any unknown trust or privacy information. Currently this just converts "unknown" trust to taintedness and "unknown" privacy to public; this is not what we ultimately want (since it means that anything exported from a module that is not explicitly marked as `$Trusted` becomes tainted) but getting intermodular trust working correctly will take some care, and this approach is conservative.

Reviewed By: dsainati1

Differential Revision: D14669362

fbshipit-source-id: 8fe773a11b0dd6bdb5bf194268171079a67419c1

samwgoldman/flow,gabelevi/flow,mroch/flow,facebook/flow,samwgoldman/flow,mroch/flow,samwgoldman/flow,samwgoldman/flow,facebook/flow,samwgoldman/flow,gabelevi/flow,gabelevi/flow,samwgoldman/flow,facebook/flow,facebook/flow,facebook/flow,gabelevi/flow,mroch/flow,mroch/flow,gabelevi/flow,gabelevi/flow,mroch/flow,facebook/flow,mroch/flow,facebook/flow,mroch/flow,samwgoldman/flow,gabelevi/flow