Fix C# optional field reflection when there are regular fields too

Previous tests didn't spot this as each message was either "all
optional" or "all non-optional", at which point there isn't a problem.
diff --git a/csharp/generate_protos.sh b/csharp/generate_protos.sh
index 49a5a42..b663138 100755
--- a/csharp/generate_protos.sh
+++ b/csharp/generate_protos.sh
@@ -45,6 +45,7 @@
 # and old_extensions2.proto, which are generated with an older version
 # of protoc.
 $PROTOC -Isrc -Icsharp/protos \
+    --experimental_allow_proto3_optional \
     --csharp_out=csharp/src/Google.Protobuf.Test.TestProtos \
     --descriptor_set_out=csharp/src/Google.Protobuf.Test/testprotos.pb \
     --include_source_info \