Since we allow `propertyKeys` to be [overriden by subclasses](https://github.com/MantleFramework/Mantle/blob/de2f2bbc235f5a82162aa308c46ad10f37993659/MantleTests/MTLTestModel.m#L199-L201) we can't actually generate the three sets in one go.