Dedupe protobuf makefile
Add a type field to protobufs

And a BaseObject that can unpack that field to decode intent
type is optional on concrete classes
Fix types of base object
Protocol definition and early tests
Testcases for new type logic
Nuke silly tests
Sanely set defaults on subobjects
Merge remote-tracking branch 'origin/features/object_discriminator'