Track top typerep in generics tinplated

This enables tinplate to work over single-field data types
and newtypes correctly.
Use typeOf instead of typeRep in Generics tinplate