Introduce thrift format for ingest

Definitely some questions around this - opening it up for discussion
We shouldn't need to call copyBytes, I had raised an issue with @raronson to fix the thrift deserializer so we didn't need to, but I am not sure if it was ever gotten too. We will need to do it for this code if not (the basic idea is that we need to call getBytes and getLength and should be able to pass the byte array and view details into the deserializer.