DRY'd up property information calculation

There was a bunch of duplicate parsing of property data to generate different parts of each schema class

I rolled these into a class. This will make it easier to add support for missing properties.