Fix compiler/test on Windows.
Remove mutable flag on Select and VarRef trees
Unseal js.Any.

There was no real reason for js.Any to be sealed, actually, and
it opens opportunities to define custom types in user-space.
Mark js.Dynamic.{select,update}Dynamic with @JSBracketAccess.

This removes two compiler primitives.
Add `@JSBracketCall` to generalize js.Dynamic.applyDynamic.

`@JSBracketCall` can be used on any method in a raw JS type that
has at least one non-repeated parameter. It will be translated
into a JS apply method where the method name is the first parameter.

This removes a bit more of the magic of js.Dynamic.
Factor the implementation of literal.applyDynamic{,Named}.
Fix #1021: IR-check assignment to val fields

Assignment to immutable val fields is only allowed in constructors.

Scalac handles immutable (val) fields that are mixed-in from a trait
adding a setter. The val is then initialized through this setter in
the trait initializer. This violates the IR contract that immutable
vals may only be assigned to in constructors.

Further, scalac sometimes unsets fields needed for by-name
parameters. Consider the following:

    class A(_x: => Int) {
      lazy val x = _x
    }

In the (lazy) initializer of `x`, `_x` is set to null, once
initialization is complete (unless `_x` is used otherwise).

Therefore, we verify the flags emitted by scalac and do a second pass
over the trees to fix the mutable flag if necessary.
Fix #1377 (again): Stabilize JSEnv timeout tests

By sufficiently increasing the absolute time difference between events
we test, we hopefully remove flakyness.
Merge pull request #1387 from gzm0/de-flake

Fix #1377 (again): Stabilize JSEnv timeout tests
Merge pull request #1378 from gzm0/ir-check-val-field-assign

IR check val field assign
Merge pull request #1386 from sjrd/remove-magic-of-js-dynamic

Remove most of the magic off js.Dynamic