goprotobuf: Make UnmarshalText reset the message before unmarshaling.

This is the expected behaviour, and matches Unmarshal.

R=r
CC=golang-dev
https://codereview.appspot.com/12449043
diff --git a/proto/text_parser.go b/proto/text_parser.go
index 9bf8095..f39b908 100644
--- a/proto/text_parser.go
+++ b/proto/text_parser.go
@@ -658,8 +658,10 @@
 	return p.errorf("invalid %v: %v", v.Type(), tok.value)
 }
 
-// UnmarshalText reads a protocol buffer in Text format.
+// UnmarshalText reads a protocol buffer in Text format. UnmarshalText resets pb
+// before starting to unmarshal, so any existing data in pb is always removed.
 func UnmarshalText(s string, pb Message) error {
+	pb.Reset()
 	v := reflect.ValueOf(pb)
 	if pe := newTextParser(s).readStruct(v.Elem(), ""); pe != nil {
 		return pe