Fixes: https://github.com/zkat/miette/issues/315
Allow errors to have a number of labels determined at runtime.
An example of this is when the rust compiler labels all the arms of
a `match` expression when one of them has an incompatible type
To allow customization of the text for each label in a collection, add
support for using LabeledSpan in collections instead of just regular
spans