[dev.link] cmd/link/internal/loader: add PkgNone resolver cache
[dev.link] cmd/link/internal/loader: add PkgNone resolver cache

Add a cache for the loader.Loader.resolve() method to use when
looking mapping local PkgNone symbols to global symbol indices.
This helps avoid repeated map lookups during deadcode and other
early phases of the linker when we haven't fully read in all
of object file symbols. Benchstat numbers:

name                      old time/op       new time/op       delta
LinkCompiler                    1.97s ±13%        1.67s ± 8%  -15.34%  (p=0.000 n=20+20)
LinkWithoutDebugCompiler        1.48s ±12%        1.21s ±11%  -18.14%  (p=0.000 n=20+20)

name                      old user-time/op  new user-time/op  delta
LinkCompiler                    2.19s ± 9%        2.04s ±17%   -6.98%  (p=0.002 n=19+20)
LinkWithoutDebugCompiler        1.29s ±13%        1.20s ±13%   -7.70%  (p=0.000 n=20+20)

Change-Id: I4b0b05c8208ee44ee9405b24774b84443e486831
Reviewed-on: https://go-review.googlesource.com/c/go/+/203197
Run-TryBot: Than McIntosh <4b2922593166fc595a9b1a408f34f5d3817fe9d2@google.com>
TryBot-Result: Gobot Gobot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Cherry Zhang <d62e63aa42ce272d7b6a5055d97e942b33a34679@google.com>

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