Introduce thrift format for ingest

Definitely some questions around this - opening it up for discussion
Can it be specified on the command line? If it can't be, I think it might be time to pull out a single project that is "just" thrift structs. No namespaces in the file. And we write something that builds our final one. This will let us generate and "share" schema between internal and external without having to expose internal ones.