Generalize plan snapshot

Im not 100% happy with `SnapshotPlannerSpec` so any suggestions to make it better would be much appreciated.
And it should not be using `FactsetDataset` in the type, it should be the extracted contents not the data type.