refactor to lessen method complexity

- move class_name and extension methods to definition_matchers mixing
- run super methods instead of redefining the method
alter DSL for class matching to use "klass" and follow the Representable DSL better without a concern for colliding with the Ruby Object#class method