bytes: don't grow Buffer if capacity is available

Also added a new benchmark from the same test:

benchmark                           old ns/op    new ns/op    delta
BenchmarkBufferNotEmptyWriteRead      2643698       709189  -73.17%

Fixes Issue 5154

R=golang-dev, r, gri
CC=golang-dev
https://codereview.appspot.com/8164043