goprotobuf: disable some logging, plus some safer unmarshaling.

R=r
CC=golang-dev
http://codereview.appspot.com/4482045
diff --git a/proto/encode.go b/proto/encode.go
index 99ea31a..5eab33b 100644
--- a/proto/encode.go
+++ b/proto/encode.go
@@ -514,7 +514,7 @@
 		// Can the object marshal itself?
 		iv := unsafe.Unreflect(p.stype, unsafe.Pointer(&s[i]))
 		if m, ok := iv.(Marshaler); ok {
-			if reflect.ValueOf(iv).IsNil() {
+			if isNil(reflect.ValueOf(iv)) {
 				return ErrNil
 			}
 			data, err := m.Marshal()