go/types: add test typechecking std lib

- run time is limited if -short is set
- also added missing TODO to unrelated file return.go

R=r
CC=golang-dev
https://codereview.appspot.com/7448052
undo CL 7301062 / 9742f722b558

broke arm garbage collector

traceback_arm fails with a missing pc. It needs CL 7494043.
But that only makes the build break later, this time with
"invalid freelist". Roll back until it can be fixed correctly.

««« original CL description
runtime: restrict stack root scan to locals and arguments

R=rsc
CC=golang-dev
https://codereview.appspot.com/7301062
»»»

R=golang-dev, bradfitz
CC=golang-dev
https://codereview.appspot.com/7493044
doc/effective_go.html: update slices and maps.
Drop the phrase "reference types", which has caused confusion.
Add a section about 2D arrays, a common newbie question.

R=golang-dev, cespare, adg, rsc
CC=golang-dev
https://codereview.appspot.com/7423051
cmd/vet: change some warnings to errors for consistency.
Fixes issue 4980.

R=golang-dev, rsc, dsymonds
CC=golang-dev
https://codereview.appspot.com/7479044
vet: check for useless assignments.

The only check so far is for self-assignments of the form "expr = expr",
but even that found one instance in the standard library.

R=r, adg, mtj, rsc
CC=golang-dev
https://codereview.appspot.com/7455048
image/jpeg: for progressive JPEGs, the first SOS segment doesn't
necessarily contain all components.

Fixes issue 4975.

R=r, minux.ma, bradfitz
CC=golang-dev
https://codereview.appspot.com/7469043
net/http: close TCP connection on Response.Body.Close

Previously the HTTP client's (*Response).Body.Close would try
to keep reading until EOF, hoping to reuse the keep-alive HTTP
connection, but the EOF might never come, or it might take a
long time. Now we immediately close the TCP connection if we
haven't seen EOF.

This shifts the burden onto clients to read their whole response
bodies if they want the advantage of reusing TCP connections.

In the future maybe we could decide on heuristics to read some
number of bytes for some max amount of time before forcefully
closing, but I'd rather not for now.

Statistically, touching this code makes things regress, so I
wouldn't be surprised if this introduces new bugs, but all the
tests pass, and I think the code is simpler now too. Maybe.

Please test your HTTP client code before Go 1.1.

Fixes issue 3672

R=golang-dev, adg
CC=golang-dev
https://codereview.appspot.com/7419050