Reviving TypeSanitizer - a sanitizer to catch type-based aliasing violations

It seems that this may have been more a bug with FFmpeg’s build system when changing compilers. I have a fix should this every happen in the wild naturally. But I was testing this on FFmpeg in order to test this!

This is my attempt at adding a way to reduce the executable size produced when running with TySan.
FFMPeg normally builds to 23.6MB. With stock TySan currently it would be 322MB. The changes I’ve made (wrapped into this nice pull request [TySan] Add option to outline instrumentation by gbMattN · Pull Request #1 · gbMattN/llvm-project · GitHub) give llvm a new flag to un-inline all the TySan instrumentation, making it build to 59.7MB. It makes the sanitizer run about 3% slower, though I think there is room for me to improve that.
If anyone gives this a shot and has some thoughts I’d love to see them all on the pull request!