lib/cpp: fleshing out types, protocols
first pass at a C++ generator
compiler: Java enum type java_to_string
compiler: py: nested builder should not require any constructor parameters