cmd/gc, runtime: fix race, nacl for writebarrier changes

The racewalk code was not updated for the new write barriers.
Make it more future-proof.

The new write barrier code assumed that +1 pointer would
be aligned properly for any type that might follow, but that's
not true on 32-bit systems where some types are 64-bit aligned.
The only system like that today is nacl/amd64p32.
Insert a dummy pointer so that the ambiguously typed
value is at +2 pointers, which is always max-aligned.

LGTM=r
R=r
CC=golang-codereviews, iant, khr
https://codereview.appspot.com/158890046
go/build: Return MultiplePackageError on importing a dir containing multiple packages

When the Import function in go/build encounters a directory
without any buildable Go source files, it returns a handy
NoGoError. Now if, instead it encounters multiple Go source files
from multiple packages, it returns a handy MultiplePackageError.

A new test for NoGoError and MultiplePackageError is also provided.

Fixes issue 8286.

LGTM=adg, rsc
R=bradfitz, rsc, adg
CC=golang-codereviews
https://codereview.appspot.com/155050043

Committer: Russ Cox <rsc@golang.org>
liblink: require DATA lines to be ordered by offset, with no overlap

The assembler could give a better error, but this one
is good enough for now.

Fixes issue 8880.

LGTM=r
R=r
CC=golang-codereviews
https://codereview.appspot.com/153610043