cmd/link: fix contents of debug_pubnames/debug_pubtypes
cmd/link: fix contents of debug_pubnames/debug_pubtypes

The contents of debug_pubnames and debug_pubtypes have been wrong since
Go 1.12.
CL golang.org/cl/137235 moved global variables DIE to their respective
compilation unit, unfortunately writepub can't emit correct sections
for anything but the first compilation unit.

This commit moves the code generating debug_pubnames and debug_pubtypes
inside writeinfo and fixes it.
Gets rid of a number of unnecessary relocations as well as a hack that
writeinfo used to communicate to writepub the size of each compilation
unit.

Fixes #30573

Change-Id: Ibdaa80c02746ae81661c2cfe1d218092c5ae9236
Reviewed-on: https://go-review.googlesource.com/c/go/+/165337
Run-TryBot: Alessandro Arzilli <e26d9aa77fb315046750e4f7a9c5cd199e338f92@gmail.com>
TryBot-Result: Gobot Gobot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Heschi Kreinick <e89ab2b172855aa0ad01c40c4d8a3535a61ac68a@google.com>

golang/go,CAFxX/go,josharian/go,cloudflare/go,nawawi/go,akutz/go,akutz/go,akutz/go,josharian/go,CAFxX/go,CAFxX/go,josharian/go,golang/go,cloudflare/go,cloudflare/go,josharian/go,cloudflare/go,nawawi/go,CAFxX/go,golang/go,nawawi/go,nawawi/go,golang/go,CAFxX/go,josharian/go,akutz/go,cloudflare/go,CAFxX/go,josharian/go,golang/go,akutz/go,golang/go,akutz/go,nawawi/go,golang/go,akutz/go,josharian/go,nawawi/go,josharian/go,cloudflare/go,CAFxX/go,cloudflare/go,nawawi/go,cloudflare/go,nawawi/go,akutz/go,golang/go,CAFxX/go