Refactor EKNPropertyDescription to use an enum for type for better static safety
Assorted documentation changes
Assorted thread safety assertions