internal/impl: abstract away ExtensionDescV1 as the underlying descriptor

Add ExtensionField.{SetType,GetType} to hide the fact that the underlying
descriptor is actually an ExtensionDescV1.

Change-Id: I1d0595484ced0a88d2df0852a732fdf0fe9aa232
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/180538
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/internal/impl/legacy_test.go b/internal/impl/legacy_test.go
index d6ca941..c1ba55e 100644
--- a/internal/impl/legacy_test.go
+++ b/internal/impl/legacy_test.go
@@ -27,7 +27,7 @@
 
 type legacyTestMessage struct {
 	XXX_unrecognized       []byte
-	XXX_InternalExtensions map[int32]pimpl.ExtensionFieldV1
+	XXX_InternalExtensions map[int32]pimpl.ExtensionField
 }
 
 func (*legacyTestMessage) Reset()         {}