Add --target-sanitize=(memory|thread|address) (#59035)
Adds three hidden options that can enable the Memory / Thread /
AddressSanitizer LLVM passes even when Julia is not built with any
sanitizers enabled. In conjunction with #59033 this lets us build a
ThreadSanitizer version of Julia in only a few minutes rather than
hours.
- Adds the `--target-sanitize=(memory|thread|address)` flags to enable
those LLVM passes when compiling code ahead of time with `--output-*`.
- JITted code will enable the passes for a sanitizer only if the
runtime is built with it.
- Adds the corresponding options to `CodegenParams`.