gofmt: avoid endless loops
gofmt: avoid endless loops

With the (partial) resolution of identifiers done
by the go/parser, ast.Objects point may introduce
cycles in the AST. Don't follow *ast.Objects, and
replace them with nil instead (they are likely
incorrect after a rewrite anyway).

- minor manual cleanups after reflect change automatic rewrite
- includes fix by rsc related to reflect change

Fixes issue 1667.

R=rsc
CC=golang-dev
http://codereview.appspot.com/4387044

dsriram/golang,dsriram/golang,apparentlymart/golang,pombredanne/go-deleteme,tv42/old-go,tv42/old-go,gnanderson/go,gnanderson/go,ssrl/go,dsriram/golang,ssrl/go,pombredanne/go-deleteme,dsriram/golang,dsriram/golang,pombredanne/go-deleteme,pombredanne/go-deleteme,apparentlymart/golang,gnanderson/go,pombredanne/go-deleteme,ssrl/go,ssrl/go,pombredanne/go-deleteme,ssrl/go,tv42/old-go,apparentlymart/golang,apparentlymart/golang,gnanderson/go,tv42/old-go,ssrl/go,apparentlymart/golang,gnanderson/go,tv42/old-go,tv42/old-go,apparentlymart/golang,dsriram/golang,tv42/old-go,apparentlymart/golang,gnanderson/go,gnanderson/go,pombredanne/go-deleteme,ssrl/go,dsriram/golang