reflect: switch ExtensionType.New to return Value

This change preserves consistency with CL/157077,
where New returns a value closer to the reflective type.

Change-Id: I85bfdae24e1ce1a10c3c7b939420fa1043bff743
Reviewed-on: https://go-review.googlesource.com/c/157078
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/internal/impl/legacy_extension.go b/internal/impl/legacy_extension.go
index 07fcf20..c1250c3 100644
--- a/internal/impl/legacy_extension.go
+++ b/internal/impl/legacy_extension.go
@@ -133,7 +133,7 @@
 		panic("no extension descriptor registered")
 	}
 	xt := legacyWrapper.ExtensionTypeFromDesc(x.Desc)
-	return xt.ValueOf(xt.New()).Message()
+	return xt.New().Message()
 }
 
 func (p legacyExtensionFields) ExtensionTypes() pref.ExtensionFieldTypes {
@@ -167,7 +167,7 @@
 	if t.Cardinality() == pref.Repeated {
 		// If the field is repeated, initialize the entry with an empty list
 		// so that future Get operations can return a mutable and concrete list.
-		x.Value = t.InterfaceOf(t.ValueOf(t.New()))
+		x.Value = t.InterfaceOf(t.New())
 	}
 	p.x.Set(t.Number(), x)
 }