Allow repeated type variables in type class instance heads.

The Mercury compiler has long required that all of the type variables referred
to in type class instance head be distinct.  There is no particularly good
reason for this restriction -- the implication that it helps to ensure that
there are no overlapping instances in the reference manual is misleading, since
the way that we do that (at least in the C grades), by using the names of the
base_typeclass_infos, is not affected by type variables.

The major implementation detail needed to support repeated type variables in
instance declarations is that when doing context reduction, we must do full
matching of instances against constraints (i.e. we need to keep track of the
type variable bindings).  Since we already do this, the only change required to
support repeated type variables is to remove the error checking that prevents
it.

compiler/check_typeclass.m:
	Do not require that type variables in instance heads be distinct.

doc/reference_manual.texi:
	Document that repeated type variables are now allowed in instance
	heads.

NEWS:
	Announce the change.

tests/invalid/instance_dup_var.m:
	Shift this test into the valid directory.

tests/invalid/repeated_instance_vars_unsat.{m,err_exp}:
     Check that we get an error if a repeated type variable is bound
     to different types.

tests/valid/Mmakefile:
tests/invalid/Mmakefile:
	Conform to the above changes.

tests/invalid/invalid_instance_declarations.err_exp:
tests/invalid/invalid_instance_declarations.m:
	Remove instances that are now valid.