Fix handling of RequiredNotSetError being returned by fields that implement Marshaler.

This has a chance of breaking some code, but only if they were already
silently broken.
diff --git a/proto/encode.go b/proto/encode.go
index 72c780b..91f3f07 100644
--- a/proto/encode.go
+++ b/proto/encode.go
@@ -529,7 +529,7 @@
 		}
 		o.buf = append(o.buf, p.tagcode...)
 		o.EncodeRawBytes(data)
-		return nil
+		return state.err
 	}
 
 	o.buf = append(o.buf, p.tagcode...)