Tests and fixes for double-enumeration on AddRange and adding of null to PopsicleList
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs
index 918be64..3305da4 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs
@@ -975,7 +975,7 @@
           Field4 = other.Field4;

         }

         if (other.field5_.Count != 0) {

-          base.AddRange(other.field5_, result.field5_);

+          result.field5_.Add(other.field5_);

         }

         if (other.HasField59) {

           Field59 = other.Field59;

@@ -1511,7 +1511,7 @@
       }

       [global::System.CLSCompliant(false)]

       public Builder AddRangeField5(scg::IEnumerable<ulong> values) {

-        base.AddRange(values, result.field5_);

+        result.field5_.Add(values);

         return this;

       }

       public Builder ClearField5() {

@@ -3569,7 +3569,7 @@
               Field13 = other.Field13;

             }

             if (other.field14_.Count != 0) {

-              base.AddRange(other.field14_, result.field14_);

+              result.field14_.Add(other.field14_);

             }

             if (other.HasField15) {

               Field15 = other.Field15;

@@ -3590,10 +3590,10 @@
               Field16 = other.Field16;

             }

             if (other.field22_.Count != 0) {

-              base.AddRange(other.field22_, result.field22_);

+              result.field22_.Add(other.field22_);

             }

             if (other.field73_.Count != 0) {

-              base.AddRange(other.field73_, result.field73_);

+              result.field73_.Add(other.field73_);

             }

             if (other.HasField20) {

               Field20 = other.Field20;

@@ -3820,7 +3820,7 @@
             return this;

           }

           public Builder AddRangeField14(scg::IEnumerable<string> values) {

-            base.AddRange(values, result.field14_);

+            result.field14_.Add(values);

             return this;

           }

           public Builder ClearField14() {

@@ -3961,7 +3961,7 @@
             return this;

           }

           public Builder AddRangeField22(scg::IEnumerable<string> values) {

-            base.AddRange(values, result.field22_);

+            result.field22_.Add(values);

             return this;

           }

           public Builder ClearField22() {

@@ -3987,7 +3987,7 @@
             return this;

           }

           public Builder AddRangeField73(scg::IEnumerable<int> values) {

-            base.AddRange(values, result.field73_);

+            result.field73_.Add(values);

             return this;

           }

           public Builder ClearField73() {

@@ -4764,22 +4764,22 @@
           Field63 = other.Field63;

         }

         if (other.group1_.Count != 0) {

-          base.AddRange(other.group1_, result.group1_);

+          result.group1_.Add(other.group1_);

         }

         if (other.field128_.Count != 0) {

-          base.AddRange(other.field128_, result.field128_);

+          result.field128_.Add(other.field128_);

         }

         if (other.HasField131) {

           Field131 = other.Field131;

         }

         if (other.field127_.Count != 0) {

-          base.AddRange(other.field127_, result.field127_);

+          result.field127_.Add(other.field127_);

         }

         if (other.HasField129) {

           Field129 = other.Field129;

         }

         if (other.field130_.Count != 0) {

-          base.AddRange(other.field130_, result.field130_);

+          result.field130_.Add(other.field130_);

         }

         if (other.HasField205) {

           Field205 = other.Field205;

@@ -5389,7 +5389,7 @@
         return this;

       }

       public Builder AddRangeGroup1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1> values) {

-        base.AddRange(values, result.group1_);

+        result.group1_.Add(values);

         return this;

       }

       public Builder ClearGroup1() {

@@ -5417,7 +5417,7 @@
         return this;

       }

       public Builder AddRangeField128(scg::IEnumerable<string> values) {

-        base.AddRange(values, result.field128_);

+        result.field128_.Add(values);

         return this;

       }

       public Builder ClearField128() {

@@ -5463,7 +5463,7 @@
         return this;

       }

       public Builder AddRangeField127(scg::IEnumerable<string> values) {

-        base.AddRange(values, result.field127_);

+        result.field127_.Add(values);

         return this;

       }

       public Builder ClearField127() {

@@ -5507,7 +5507,7 @@
         return this;

       }

       public Builder AddRangeField130(scg::IEnumerable<long> values) {

-        base.AddRange(values, result.field130_);

+        result.field130_.Add(values);

         return this;

       }

       public Builder ClearField130() {