add typeOf for NTuples; make NTuple covariant

This pull request will enable defining functions taking NTuples.
that's a bug. 
The main test is that it compiles: t1 can be passed to f which takes a ttype.Type