Introduce thrift format for ingest

Definitely some questions around this - opening it up for discussion
As a side note there is an outstanding improvement to be done to the snapshot format which would eliminate NamespacedThriftFact, it really is just a work around for the snapshot issue.