[dev.link] cmd/link: begin splitting up dodata()
[dev.link] cmd/link: begin splitting up dodata()

Begin refactoring dodata to try to convert it from a single giant blob
to something more hierarchical, with descriptive function names for
sub-parts.

Add a state object to hold things like "data" and "dataMaxAlign"
arrays that are used throughout dodata. Extract out the code that
allocates data symbols to sections into a separate method (this
method is still too big, probably needs to be refactored again).

No change in functionality.

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

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