io: explain what (0,nil) means from Read
Also add a new variable ErrNoProgress that io.Readers can use to
report ineffectual Read calls.
Fixes issue 5310.

R=golang-dev, dsymonds, bradfitz
CC=golang-dev
https://codereview.appspot.com/8845043
doc/go1.1.html: document io.ErrNoProgress

R=golang-dev, bradfitz
CC=golang-dev
https://codereview.appspot.com/8833050
bufio.Scan: don't stop after Read returns 0, nil
But stop eventually if the reader misbehaves.

R=golang-dev, bradfitz
CC=golang-dev
https://codereview.appspot.com/8757045