goprotobuf: Fix handling of empty string defaults for 'string' and 'bytes' fields.

This is a bit of an edge case. All other valid defaults appear as
non-empty strings, but we need to distinguish [default=""] for string/bytes
to uphold the SetDefaults contract.

LGTM=djd
R=djd
CC=golang-codereviews
https://codereview.appspot.com/125100044
diff --git a/proto/all_test.go b/proto/all_test.go
index 1ac9587..b2a0191 100644
--- a/proto/all_test.go
+++ b/proto/all_test.go
@@ -1387,10 +1387,11 @@
 		F_Pinf:    Float32(float32(math.Inf(1))),
 		F_Ninf:    Float32(float32(math.Inf(-1))),
 		F_Nan:     Float32(1.7),
+		StrZero:   String(""),
 	}
 	SetDefaults(m)
 	if !Equal(m, expected) {
-		t.Errorf(" got %v\nwant %v", m, expected)
+		t.Errorf("SetDefaults failed\n got %v\nwant %v", m, expected)
 	}
 }