Previously, the function's "name" was sometimes mangled, sometimes not. Now we have a clear differentiation between symbol names and debug names.
Also adds support for --print-gc-sections for synthetic functions, so that the tests can be extended to cover the function names and debug names separately.
Is this really what the stubs are called? I think we should at least make them valid C identifiers. __undefined_xxx?