=rem #16428 optimize protobuf serializer for master

#16428 for master
I'm skeptical to the choice of `ConcurrentHashMap` here as it will do segmented blocking for reads on non Java 8.

Did you benchmark the difference between using this and using something like `AtomicReference[immutable.HashMap[Class[_], Method]]`? (given that we'd expect things to enter a stable state rather soon in the program's lifetime)