refactoring and adding enum support

The JsonSchemaGenerator class were all refactored with better method
names and comments.

Also added support for processing Enum Types using the toString method.
If it returns a numeric string then the result is correctly parsed to a
numeric value.