Data package:ghc

Handle conversion of CmmData to LLVM code.
A data constructor
Neither Cmm or Wasm type system takes integer signedness into account, therefore we always round up a CmmLit to the right width and handle it as an untyped integer.
WebAssembly doesn't really have proper read-only memory regions yet. Neverthless we add the .rodata logic here, wasm-ld will aggregate all .rodata sections into a single one, which adds possibility for runtime checks later, either via a customized runtime, or via code instrumentation. See https://github.com/llvm/llvm-project/blob/b296aed8ae239c20ebdd7969e978f8d2a3b9c178/lld/wasm/Writer.cpp#L856