test: return errors earlier in run.go

Fixes issue 8184.

LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://codereview.appspot.com/137510043
go/printer, gofmt: don't align map entries for irregular inputs

Details: Until now, when we saw a key:value pair that fit onto
a single line, we assumed that it should be formatted with a
vtab after the ':' for alignment of its value. This leads to
odd behavior if there are more than one such pair on a line.
This CL changes the behavior such that alignment is only used
for the first pair on a line. This preserves existing behavior
(in the std lib we have composite literals where the last line
contains multiple entries and the first entry's value is aligned
with the values on previous lines), and resolves this issue.

No impact on formatting of std lib, go.tools, go.exp, go.net.

Fixes issue 8685.

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://codereview.appspot.com/139430043