Add (sparse) structs to Fact thrift format

> I would generally split this into a a few smaller properties

Done. I'm a little confused/unsure about the second bullet point - I couldn't think of writing it that wouldn't seem redundant. :(