go/build, cmd/go: update to match recent changes to gc

Several recent changes to the gc version of cmd/go improve the
gofrontend support. These changes are partially copies of existing
gofrontend differences, and partially new code. This CL makes the
gofrontend match the upstream code.

The changes included here come from:
    https://golang.org/cl/111575
    https://golang.org/cl/111595
    https://golang.org/cl/111635
    https://golang.org/cl/111636

For the record, the following recent gc changes are based on code
already present in the gofrontend repo:
    https://golang.org/cl/110915
    https://golang.org/cl/111615

For the record, a gc change, partially based on earlier gofrontend
work, also with new gc code, was already copied to gofrontend repo in
CL 111099:
    https://golang.org/cl/111097

This moves the generated list of standard library packages from
cmd/go/internal/load to go/build.

Change-Id: Ib59931d408ba3b5d991715b455b5af2a365d16ac
Reviewed-on: https://go-review.googlesource.com/112475
Reviewed-by: Than McIntosh <thanm@google.com>
9 files changed