added ApexProperty model
added ApexClass
refactored apexGenerator to use models and toString overrides