Moves the bindings to ASAN, MSAN, TSAN, and DFSAN out of the Go bindings and into the C bindings.
Additionally, add bindings to Code Coverage Sanitizer.
The notable addition to the API is the options wrappers. Memory Sanitizer, and Code Coverage Sanitizer offer structures that encapsulate their configuration options. As these structures are subject to change in future releases of LLVM, the bindings have corresponding opaque wrapper structs that have explicit allocation/destruction routines. This way, we can support future added options by adding bindings that act as setters. We support future removed options by marking their corresponding parameter dead in the documentation/deprecating the setter wrapper.