ADDED:  Handling of enum properties
ADDED:  Allowing concrete types to be specified for Object property generation in the case where a subclass is desired, or the property type is an interface or abstract class