Introduced TIEnv to capture state in inference

There was a Context class previously, but now the namings generated by
newTVar are covered by TIEnv as well. This is in preparation of the
rank-n-types inference algorithm that will benefit from this kind of
state capturing object.