Canged CodedInputStream.ReadTag to use boolean result with out params to
support reading a field name rather than a field tag.
diff --git a/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs b/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
index ccb118d..36040cb 100644
--- a/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
+++ b/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
@@ -519,7 +519,7 @@
         while (input.ReadTag(out tag, out field_name)) {

           switch (tag) {

             case 0: {

-              throw InvalidProtocolBufferException.InvalidTag();

+              throw pb::InvalidProtocolBufferException.InvalidTag();

             }

             default: {

               if (pb::WireFormat.IsEndGroupTag(tag)) {

@@ -1020,7 +1020,7 @@
         while (input.ReadTag(out tag, out field_name)) {

           switch (tag) {

             case 0: {

-              throw InvalidProtocolBufferException.InvalidTag();

+              throw pb::InvalidProtocolBufferException.InvalidTag();

             }

             default: {

               if (pb::WireFormat.IsEndGroupTag(tag)) {

@@ -1245,7 +1245,7 @@
         while (input.ReadTag(out tag, out field_name)) {

           switch (tag) {

             case 0: {

-              throw InvalidProtocolBufferException.InvalidTag();

+              throw pb::InvalidProtocolBufferException.InvalidTag();

             }

             default: {

               if (pb::WireFormat.IsEndGroupTag(tag)) {

@@ -1470,7 +1470,7 @@
         while (input.ReadTag(out tag, out field_name)) {

           switch (tag) {

             case 0: {

-              throw InvalidProtocolBufferException.InvalidTag();

+              throw pb::InvalidProtocolBufferException.InvalidTag();

             }

             default: {

               if (pb::WireFormat.IsEndGroupTag(tag)) {