Add (sparse) structs to Fact thrift format

The type should be List[(K, These[V1, V2])] though - don't want two None's.