29 add lineage support for type arguments

- Added extended type as an alternative to superclass (with type argument preservation)
- Changed lineage to use extended type
- Modified creation to carry type arguments from subclass

Requires and urgen refactor on type creation