cmd/gc, runtime: use type information to scan interface values

R=golang-dev, rsc, dvyukov
CC=golang-dev
https://codereview.appspot.com/12785045
runtime: do not preempt race calls
In the crash stack trace race cgocall() calls endcgo(),
this means that m->racecall is wrong.
Indeed this can happen is a goroutine is rescheduled to another M
during race call.
Disable preemption for race calls.
Fixes issue 6155.

R=golang-dev, rsc, cshapiro
CC=golang-dev
https://codereview.appspot.com/12866045
net: annotate Read/Write for race detector
Fixes issue 6167.

R=golang-dev, bradfitz
CC=golang-dev
https://codereview.appspot.com/13052043
runtime: don't run finalizers if we're still on the g0 stack.

R=golang-dev, rsc, dvyukov, khr
CC=golang-dev
https://codereview.appspot.com/11386044