made ArrayType constructor phase aware

Avoid to create ArrayTypes after erase.

Note that the *extractor* does not recognize JavaArrayTypes as
ArrayTypes. Doing so would create an infinite loop in sigName.
Generally, we do not want to ppaper over the difference when analysing
types.
Simplification in type assigning SeqLiterals
Replace `==` with `eq` when determining unique types

When hash-consing TypeBounds, RefinedTypes and NamedTypes, we
now check the argument types with `eq`, where before it was `==`.
This is necessary for TypeBounds, because it makes a difference
whether a TypeBound has `eq` parts (then it is a type alias) or not.
So we cannot merge type aliases with non-aliases.

The symptom of the problem was when compiling Patterns.scala twice with
the new SeqLiterals phase (next commit) enabled. On second run, we encountered
an ArrayType[>: String <: String], even if we only created an ArrayType[String].
This was a consequence of the two types being identified by uniques.

Todo: Change the system so that type aliases are recognized more robustly.
But the present change seems to be useful anyway because it speeds up
uniques hashing. I verified that the stricter condition on uniques creates less
than 1% more types than before. So the speedup of hashing looks worthwhile.
Add new SeqLiterals phase.

Replaces SeqLiterals by JavaSeqLiterals, because the latter's
(array-)type is preserved after erasure.
Merge pull request #261 from dotty-staging/fix/type-seqliteral

Fix/type seqliteral
Fix erasure of trait info

After erasure, traits always extend object, and no other class.

The change flushed out three more problems, one in the handling of
Super trees in erasure, another in bridge method generation. and a
third that class RepeatedParam had Seq, which is a trait, as first parent.
Simplified code a bit
Fixed formatting (wrong indentation)
Merge pull request #264 from dotty-staging/fix/trait-erasure

Fix erasure of trait info
Pass right prototype to SeqLiteral elements.
Better typing of seqLiteral in erasure.

Fixed two problems with previous commit.
Fix by-name arguments

Previous scheme relying on Attachments was fragile. We now use
a dummy method application, which transmits info reliably to
Erasure.
Merge pull request #267 from dotty-staging/fix/byname-args

Fix by-name arguments
Phases: The operator <= does not need a context anymore
Phases: set the period correctly
Merge pull request #265 from dotty-staging/fix/type-seqliteral

Pass right prototype to SeqLiteral elements.
Merge pull request #274 from smarter/fix/period-of-phases

Phases: set the period correctly
Two new tests

1) Verify we survive illegal infinite paths. Closes #91.
2) Verify we handle fbounds in and types correctly.