Add Structs to Facts
Fix broken SnapshotMetaSpec
Change Date arbitrary so it doesn't skip
SnapshotMeta.latest should take latest based of date/store pair, not just date
Take the greatest snapshot id when there are duplicate snapshots

- Added more test cases
- Added OldIdentifier arbitrary
fixed the printing of facts, using the version
cat facts can now read both snapshots and facts
passing the recreate regression test for factsets