Add Factset

- Factset contains a FactsetId and list of partitions
- Add more tests to PartitionSpec
good point, will do