internal/impl: fix messageset validation bug

The validator was not ensuring the the MessageInfo for messageset
items was initialized. Fixed.

One or more of the existing messageset tests fail when run in isolation
due to this bug, but running all of them in sequence passes due to an
earlier test initializing the MessageInfo first.

Change-Id: Ifa7bd525c6d1cef9d1bed7bf761b0380907e35ee
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/221023
Reviewed-by: Joe Tsai <joetsai@google.com>
diff --git a/internal/impl/validate.go b/internal/impl/validate.go
index 449331b..c0148ab 100644
--- a/internal/impl/validate.go
+++ b/internal/impl/validate.go
@@ -518,6 +518,9 @@
 						return out, ValidationUnknown
 					default:
 						xvi := getExtensionFieldInfo(xt).validation
+						if xvi.mi != nil {
+							xvi.mi.init()
+						}
 						states = append(states, validationState{
 							typ:  xvi.typ,
 							mi:   xvi.mi,