goprotobuf: Marshal nested messages into our current buffer instead of a new one, and move the encoded form as needed to make the varint size happy.
goprotobuf: Marshal nested messages into our current buffer instead
of a new one, and move the encoded form as needed to make the
varint size happy.

R=r
CC=golang-codereviews
https://codereview.appspot.com/51010044

go-mirrors/goprotobuf,VividCortex/goprotobuf