This is an extremely rough draft of a potential change to replace !range
metadata by something implemented on top of ExtMetadata.
That is, replace
!range !{ i32 5, i32 20 }
by something like
!range !llvm.range{ ranges: [{ lo: i32 5, hi: i32 20 }] }
Structured data doesn't actually have arrays at the time of writing, so
the draft is limited to a single lo/hi pair. The main point is to show
a concrete example and explore how the ExtMetadata infrastructure is used.