Added the field name to all CodedOutputStream.Write??? calls
Refactored 'speed' generated write of arrays to call Write???Array.  This may
have impacted speed write speeds for arrays of non-reference types due to the
use of non-generic IEnumerable and the subsequent boxing of value types.  This
could be addressed later if desired.
diff --git a/src/ProtocolBuffers/AbstractMessage.cs b/src/ProtocolBuffers/AbstractMessage.cs
index a4d9804..1e1ac1d 100644
--- a/src/ProtocolBuffers/AbstractMessage.cs
+++ b/src/ProtocolBuffers/AbstractMessage.cs
@@ -166,13 +166,13 @@
                     {

                         foreach (object element in valueList)

                         {

-                            output.WriteField(field.FieldType, field.FieldNumber, element);

+                            output.WriteField(field.FieldType, field.FieldNumber, field.Name, element);

                         }

                     }

                 }

                 else

                 {

-                    output.WriteField(field.FieldType, field.FieldNumber, entry.Value);

+                    output.WriteField(field.FieldType, field.FieldNumber, field.Name, entry.Value);

                 }

             }