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/message.go b/internal/impl/message.go
index d64ee7f..6db60f1 100644
--- a/internal/impl/message.go
+++ b/internal/impl/message.go
@@ -48,7 +48,7 @@
 	sizecacheOffset       offset
 	unknownOffset         offset
 	extensionFieldInfosMu sync.RWMutex
-	extensionFieldInfos   map[*piface.ExtensionDescV1]*extensionFieldInfo
+	extensionFieldInfos   map[pref.ExtensionType]*extensionFieldInfo
 }
 
 var prefMessageType = reflect.TypeOf((*pref.Message)(nil)).Elem()