First pass at memoizing reflection on Protobuf Message field access

geneate syntax for direct method calls against a message based on field
name. Constructs a function that doesn't need to use reflection.
Reflection is done at function definition time and should only happen
once per class.  Generated functions are memoized by protobuf message class.

this could use some cleanup and the setter flow has not been implemented

all tests pass.
Add type annotations for a performance improvement

still slower than  master though
Dispatch with case, not cond