Changes in particular:
- Pull sanitizer and wrapper pass apart
- Add a newpm msan and msan-init pass
- Update tests
Caveats:
- Getting the original msan behavior back requires scheduling both msan and msan-init.
- msan now tries to add a few global variables and function declaration everytime it runs, i.e. for every function. I deduplicate the global variables by name and type, do I need more?
- I skip annotating the msan init function created by the init pass by name, which also might not suffice.
please move MSanOptions into separate patch and rename MSanOptions into just Options