Restoring array tests and fix in global decls.

  - Need to add: (len v) = `length of ArrayLit` in quals.
Adding qualifiers for array literal length
Adding support for typing `this` at method sigs.

  - ONLY works till tc at the moment.
  - Need to pass the resolution information to liquid - in the same way as
    overloaded functions.

  - The types look like this:

    {
      ...

      concat [#Array[#Immutable,T]] : /\ (items: #Array[#Immutable,T]) => { #Array[#Immutable,T] | (len v) = (len this) + (len items) }
                                      /\ forall M1 M2 . (items: #Array[M1,T]) => #Array[M2,T];

      concat [#Array[#Mutable  ,T]] :    forall M1 M2 . (items: #Array[M1,T]) => #Array[M2,T];

      concat [#Array[#ReadOnly ,T]] :    forall N1 N2 . (items: #Array[N1,T]) => #Array[N2,T];

    }