Add a test case for bug 271.

The bug results in a compiler crash when the compiler constructs a
typeclass info variable that it has already constructed on another branch
and there is also an existentially quantified variable present.

tests/valid/bug271.m:
tests/valid/Mmakefile:
tests/valid/Mercury.options:
    As above.
Fix bug 271.

Bug271 is caused by the handling of multiple typeclass infos for the same
type where existentially typed variables are also present.  When the
compiler knows that a typeclass info value is a constant it is allocated
statically on backends that support this.  When the typeclass info value is
seen a second time (on any execution path) the previously created static
value is used for the typeclass info.  However, if a predicate call's
arguments include both a constrained universally quantified variable, and an
existentially quantified variable, then polymorphism.m attempts to create a
new value, regardless of whether there is an existing value.  When it
records the new value in the table of constant typeclass instance values, it
crashes as this key is already present.

This change allows the constant typeclass instance value to be reused if
it where present, by removing the test of the presence of existentially
typed variables.

compiler/polymorphism.m:
    As above.
Merge pull request #1 from PaulBone/bug271_master

Fix bug 271

This has not been reviewed but may create problems that I'm not aware of.  I'll address any review comments post-commit.

Thanks.