Add AbstractClassDefResult with a corresponding implementation of user representation generation in the form of a string

- Modified output to write the string class on a ClassDefResult and abstract class on an AbstractClassDefResult
- Considerably refactored the string user reprensentation generation to accomodate the new modeling