Make +JSONKeyPathsByPropertyKey required

Its presence indicates that the implementor thought about what it means
to map property keys to and from JSON, and it's trivial to provide a
simple implementation if you don't have any custom behaviors.
Add +classForParsingJSONDictionary: for class clusters
Tests for parsing class substitution