SI-4859 Don't rewrite CC().CC2() to new CC2

Where CC and CC2 are case classes. Attempting to do so leads to
a "no legal prefix" error.

Now, we restrict this optimization (living in RefChecks ?!) to
case class applies with a "safe to inline" qualifier.

Review by @paulp
  - is `isExprSafeToInline` the right check here? I wasn't sure about that.
  - I didn't go as far as adding a test to show that some rewriting still works. But via manual inspection: here's how the enclosed test case looks after `refchecks`.

```scala
  object O extends scala.AnyRef {
    def <init>(): O.type = {
      O.super.<init>();
      ()
    };
    new C().CC.apply();
    new D().DD.apply()
  };
```

*Update*

I also had to modify `Flatten` and `GenICode` to make sure we throw in:

```scala
{???; Predef}.DummyImplicit.dummyImplicit
```

and `DeadCodeElimination` to initialize object `Outer` in `Outer.Inner.foo`.