Introduce thrift format for ingest

Definitely some questions around this - opening it up for discussion
Yeh, I don't think this should be a ParseError. This would only be triggered on a corrupt repository and should fail the whole job rather than just a record. It should have a specific "OhNoesThingsHaveGoneWrongError" type or something.