Introduce thrift format for ingest

Definitely some questions around this - opening it up for discussion
`IngestFormat`? Should `Text`/`Thrift` be `TextFormat`/`ThriftFormat`?