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
Sharing backend between scalac and dotty.

Due to a lot of error and workarounds required for backend not regress in terms of speed, I guess the original idea was to high to be reached..
Nevertheless it was good to try.
Erasure is on by default.

Remove historical enabling of erasure for some tests: its enabled by default now
Update to scala 2.11.4
Hack ClassFileParser to not treat Null$ or Nothing$ as modules.

They are classes.
Move methods shared between Mixin and Backend to SymUtils.
Remove duplicate isAnonymousFunction
New phase: collectEntryPoints

collects entry points and registers them in backend
Depend on custom compiler with https://github.com/scala/scala/pull/4136 incorporated
remove dependency on Btypes from DottyPrimitives. Rely on symbols instead.
GenBcode phase implemented.

That doesn't mean it works :-)
Add member lookups needed by backend.