VM support for erased types

- Object.typeof now returns a Type object with the correct number of
  arguments.
- The arguments are all erased (new form in VM).
- The compiler now reports an error when pattern matching against a
  class type with static type parameters.