DIBuilder wrapper

This change introduces C bindings for llvm::DIBuilder,
and a Go wrapper on top of the C bindings. The C wrapper
code can be upstreamed.