=rem #16428 optimize protobuf serializer for master

#16428 for master
case @viktorklang think that better.In fact I think this one
```
   manifest match {
      case Some(clazz) ⇒
        parsingMethodBindingRef.get().getOrElse(clazz, {
          @tailrec
          def cacheMethod(clazz: Class[_], method: Method): Method = {
            val parsingMethodBinding = parsingMethodBindingRef.get()
            val newParsingMethodBinding = parsingMethodBinding.updated(clazz, method)
            if (parsingMethodBindingRef.compareAndSet(parsingMethodBinding, newParsingMethodBinding)) {
              method
            } else {
              cacheMethod(clazz, method)
            }
          }
          import AtomicProtobufSerializer2.ARRAY_OF_BYTE_ARRAY
          cacheMethod(clazz, clazz.getDeclaredMethod("parseFrom", ARRAY_OF_BYTE_ARRAY: _*))
        }).invoke(null, bytes).asInstanceOf[Message]
```
is OK too,seems the only problem is the by name parameter