Functions to query property ranges
Declare properety ranges for everything
Copy ranges in makePropertyArrayFromTable
Clean up the property code with use of the preprocessor.

Namely, the preambles set a constant pointer to property called prop, eliminating the ugly expression.
Property setters now have range checks