Fix array creation v2

Now: All new Array[T] methods are translated to calls of the form

    dotty.Arrays.newXYZArray ...

Supersedes #252. Main change is that we now keep ref array types after erasure, and that we 
allow for local type inference of array creation arguments, i.e. new Array(len), without a type argument.

Review by @DarkDimius please.
Yes, that's intentional. It's a technically to fit best with the way erasure works for polymorphic functions. That way, we can treat newRefArray and asInstanceOf in exactly the same way.