Revert changes to reserved names to maintain backwards compat (#636)

146b186 and b96dc21 removed some of the reserved names. Removing a
reserved name is a breaking change as a reserved field name would
previously be added a suffix. To avoid keep things backwards compatible
this adds those reserved names back, to be removed in the next major
release.
diff --git a/protobuf/lib/meta.dart b/protobuf/lib/meta.dart
index 519bbd0..446853b 100644
--- a/protobuf/lib/meta.dart
+++ b/protobuf/lib/meta.dart
@@ -80,6 +80,12 @@
   r'$_setString',
   r'$_setUnsignedInt32',
   r'$_whichOneof',
+
+  // Names below are no longer reserved and should be removed in the next major
+  // release
+  'fromBuffer',
+  'fromJson',
+  r'$_defaultFor',
 ];
 
 // List of names which cannot be used in a subclass of ProtobufEnum.
@@ -90,5 +96,9 @@
   'hashCode',
   'noSuchMethod',
   'runtimeType',
-  'toString'
+  'toString',
+
+  // Names below are no longer reserved and should be removed in the next major
+  // release
+  'initByValue',
 ];
diff --git a/protoc_plugin/test/generated_message_test.dart b/protoc_plugin/test/generated_message_test.dart
index 07bb679..ce7f0ec 100755
--- a/protoc_plugin/test/generated_message_test.dart
+++ b/protoc_plugin/test/generated_message_test.dart
@@ -468,6 +468,8 @@
     message.noSuchMethod_2 = 1;
     message.runtimeType_3 = 1;
     message.toString_4 = 1;
+    message.fromBuffer_10 = 1;
+    message.fromJson_11 = 1;
     message.hasRequiredFields_12 = 1;
     message.isInitialized_13 = 1;
     message.clear_14 = 1;
@@ -505,6 +507,8 @@
     message.noSuchMethod_2.clear();
     message.runtimeType_3.clear();
     message.toString_4.clear();
+    message.fromBuffer_10.clear();
+    message.fromJson_11.clear();
     message.hasRequiredFields_12.clear();
     message.isInitialized_13.clear();
     message.clear_14.clear();
@@ -546,6 +550,8 @@
     message.noSuchMethod_2 = 1;
     message.runtimeType_3 = 1;
     message.toString_4 = 1;
+    message.fromBuffer_10 = 1;
+    message.fromJson_11 = 1;
     message.hasRequiredFields_12 = 1;
     message.isInitialized_13 = 1;
     message.clear_14 = 1;
diff --git a/protoc_plugin/test/reserved_names_test.dart b/protoc_plugin/test/reserved_names_test.dart
index dfc19ad..43c9eff 100755
--- a/protoc_plugin/test/reserved_names_test.dart
+++ b/protoc_plugin/test/reserved_names_test.dart
@@ -22,11 +22,26 @@
 
 import 'mirror_util.dart' show findMemberNames;
 
+// These names are no longer reserved but we keep them in
+// `GeneratedMessage_reservedNames` to keep generated code backwards
+// compatible. Remove in next major release.
+const List<String> oldGeneratedMessageReservedNames = [
+  'fromBuffer',
+  'fromJson',
+  r'$_defaultFor',
+];
+
+// These names are no longer reserved but we keep them in
+// `ProtobufEnum_reservedNames` to keep generated code backwards compatible.
+// Remove in next major release.
+const List<String> oldProtobufEnumReservedNames = ['initByValue'];
+
 void main() {
   test('GeneratedMessage reserved names are up to date', () {
     var actual = Set<String>.from(GeneratedMessage_reservedNames);
     var expected =
-        findMemberNames('package:protobuf/protobuf.dart', #GeneratedMessage);
+        findMemberNames('package:protobuf/protobuf.dart', #GeneratedMessage)
+          ..addAll(oldGeneratedMessageReservedNames);
 
     expect(actual.toList()..sort(), equals(expected.toList()..sort()));
   });
@@ -34,7 +49,8 @@
   test('ProtobufEnum reserved names are up to date', () {
     var actual = Set<String>.from(ProtobufEnum_reservedNames);
     var expected =
-        findMemberNames('package:protobuf/protobuf.dart', #ProtobufEnum);
+        findMemberNames('package:protobuf/protobuf.dart', #ProtobufEnum)
+          ..addAll(oldProtobufEnumReservedNames);
 
     expect(actual.toList()..sort(), equals(expected.toList()..sort()));
   });