=rem #16428 optimize protobuf serializer for master

#16428 for master
You can get rid of the most, to me, icky part by returning the Method and issuing the `.invoke(null, bytes).asInstanceOf[Message]` only once.

(duplicating reflection code and casts is not cool IMO)