Add Factset

- Factset contains a FactsetId and list of partitions
- Add more tests to PartitionSpec
Why not call it `Namespace` so that we have it as a first class concept?