Add initial support for DIExpression in LLVM dialect. Similar to LLVM IR, DI Expression is encoded as a list of uint64. The difference is that LLVM IR has helpers for understanding the expression (e.g. for verification and pretty printing), whereas the current support added by this PR treats the expression elements as opaque.