all: fast-path method refactoring

Move all fast-path inputs and outputs into the Input/Output structs.
Collapse all booleans into bitfields.

Change-Id: I79ebfbac9cd1d8ef5ec17c4f955311db007391ca
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/219505
Reviewed-by: Joe Tsai <joetsai@google.com>
diff --git a/internal/impl/isinit.go b/internal/impl/isinit.go
index 63d1fa5..4bd978f 100644
--- a/internal/impl/isinit.go
+++ b/internal/impl/isinit.go
@@ -9,16 +9,17 @@
 
 	"google.golang.org/protobuf/internal/errors"
 	pref "google.golang.org/protobuf/reflect/protoreflect"
+	piface "google.golang.org/protobuf/runtime/protoiface"
 )
 
-func (mi *MessageInfo) isInitialized(m pref.Message) error {
+func (mi *MessageInfo) isInitialized(in piface.IsInitializedInput) (piface.IsInitializedOutput, error) {
 	var p pointer
-	if ms, ok := m.(*messageState); ok {
+	if ms, ok := in.Message.(*messageState); ok {
 		p = ms.pointer()
 	} else {
-		p = m.(*messageReflectWrapper).pointer()
+		p = in.Message.(*messageReflectWrapper).pointer()
 	}
-	return mi.isInitializedPointer(p)
+	return piface.IsInitializedOutput{}, mi.isInitializedPointer(p)
 }
 
 func (mi *MessageInfo) isInitializedPointer(p pointer) error {