goprotobuf: Use already-allocated nested messages if they exist.

This maintains the semantics that unmarshaling the concatenation of two
encoded messages is equivalent to merging those messages.

R=r
CC=golang-dev
https://codereview.appspot.com/10409046
diff --git a/protoc-gen-go/generator/generator.go b/protoc-gen-go/generator/generator.go
index c647131..3ad2d13 100644
--- a/protoc-gen-go/generator/generator.go
+++ b/protoc-gen-go/generator/generator.go
@@ -866,6 +866,8 @@
 			g.WriteString(fmt.Sprintf("%d", s))
 		case *int32:
 			g.WriteString(fmt.Sprintf("%d", *s))
+		case *int64:
+			g.WriteString(fmt.Sprintf("%d", *s))
 		case float64:
 			g.WriteString(fmt.Sprintf("%g", s))
 		case *float64: