Add Factset

- Factset contains a FactsetId and list of partitions
- Add more tests to PartitionSpec
Yeah, this is also why we need a review over all the `Arbitraries`. Im sure we could cleanup and reduce the size of this file, or split it up.