This patch adds a C API wrapper for the DIBuilder API and exposes most of the functionality. This is not entirely complete, as I am not very familiar with the DI APIs and likely missed some important API coverage.
This builds off the work done by the Rust team, but removes Rust-specific code, generalizes the API, and implements the remaining features from DIBuilder.
This patch adds a definition of LLVMDIBuilderRef that represents an llvm::DIBuilder.