reflect/protoregistry: add (*Types).Register{Message,Enum,Extension}

Add type-safe methods to register message, enum, and extension types.
Deprecate the NewTypes function and the (*Types).Register method.

Add (*File).RegisterFile and deprecate the NewFiles function and
the (*File).Register method.

Updates golang/protobuf#963

Change-Id: Ie89e77526e0874539e9bd929ca0ba8d758e65a6e
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/199898
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/internal/filedesc/build.go b/internal/filedesc/build.go
index 3719455..f4af7ad 100644
--- a/internal/filedesc/build.go
+++ b/internal/filedesc/build.go
@@ -44,7 +44,7 @@
 	FileRegistry interface {
 		FindFileByPath(string) (protoreflect.FileDescriptor, error)
 		FindDescriptorByName(pref.FullName) (pref.Descriptor, error)
-		Register(...pref.FileDescriptor) error
+		RegisterFile(pref.FileDescriptor) error
 	}
 }
 
@@ -107,7 +107,7 @@
 	out.Extensions = fd.allExtensions
 	out.Services = fd.allServices
 
-	if err := db.FileRegistry.Register(fd); err != nil {
+	if err := db.FileRegistry.RegisterFile(fd); err != nil {
 		panic(err)
 	}
 	return out