encoding/binary: make type error more specific

Right now it says 'invalid type S' for a struct type S.
Instead, say which type inside the struct is the problem.

Fixes issue 4825.

R=golang-dev, iant
CC=golang-dev
https://codereview.appspot.com/7301102
runtime: check rt_sigaction return values on linux

(If the mask size is wrong the system call fails.)

R=golang-dev, iant
CC=golang-dev
https://codereview.appspot.com/7305097