I just noticed that sv_catsv checks the UTF8 flag on the destination
before GMAGIC. I think that's a big problem (but I'm not sure) and I
sorta dread to think how many other places the same might be happening.
Is there some easier way we could be handling GMG than this? It all
seems undesirably fragile - we really need some easy way to ensure
that mg_get() happens once when first needed, and not again until
referred to by something else, and we're nowhere near that now.