Down-integrate internal changes to github. (#5566)

* Down-integrate internal changes to github.

* fix csharp conformance test

* add comments in conformance.proto for text format

* fix comments

* fix comments, re-generated csharp file

* fix comments, re-generated csharp file
diff --git a/conformance/conformance.proto b/conformance/conformance.proto
index 0e86d11..b61f356 100644
--- a/conformance/conformance.proto
+++ b/conformance/conformance.proto
@@ -56,6 +56,7 @@
   PROTOBUF = 1;
   JSON = 2;
   JSPB = 3;  // Google internal only. Opensource testees just skip it.
+  TEXT_FORMAT = 4;
 }
 
 enum TestCategory {
@@ -70,8 +71,14 @@
   JSON_IGNORE_UNKNOWN_PARSING_TEST = 3;
   // Test jspb wire format. Google internal only. Opensource testees just skip it.
   JSPB_TEST = 4;
+  // Test text format. For cpp, java and python, testees can already deal with 
+  // this type. Testees of other languages can simply skip it.
+  TEXT_FORMAT_TEST = 5;
 }
 
+// The conformance runner will request a list of failures as the first request.
+// This will be known by message_type == "conformance.FailureSet", a conformance
+// test should return a serialized FailureSet in protobuf_payload.
 message FailureSet {
   repeated string failure = 1;
 }
@@ -94,6 +101,7 @@
     string json_payload = 2;
     // Google internal only.  Opensource testees just skip it.
     string jspb_payload = 7;
+    string text_payload = 8;
   }
 
   // Which format should the testee serialize its message to?
@@ -149,6 +157,10 @@
     // serialize to JSPB and set it in this field. JSPB is google internal only
     // format. Opensource testees can just skip it.
     string jspb_payload = 7;
+
+    // If the input was successfully parsed and the requested output was
+    // TEXT_FORMAT, serialize to TEXT_FORMAT and set it in this field.
+    string text_payload = 8;
   }
 }