Stringifies a resolved value for embedding into a string-interpolation
segment -- shared by Cooper.Loop (a loop-bound value substituted into
an interpolated destination path or body string) and Cooper.Resolver
(an ordinary @{}/${}/%{}/!{}/!Name() result embedded the same
way, CASC.md §7).
A list, map, or tuple has no string form and is refused (display/1
returns {:error, message}): without that, Kernel.to_string/1 read a
list as iodata -- "@{ports}" over [8443, 8444] became raw bytes --
and crashed outright on a tuple or a map.