Fix: Substitution of type term in the term builder

A complete case distinction was missing in the case that a type variable
'i' has do be substituted by some type term 't' in the case that the
variable 'i' has not yet any substitution. In this case the following
cases has to be distiguished:

- The type term 't' is itself a type variable and does not yet have a
  substitution

- The type term 't' is itself a type variable and has a substitution

- The type term 't' is not a type variable

	modified:   ocaml/term_builder.ml
	modified:   ocaml/term_builder.mli