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.
Introduce a new Symbol test: isTopLevel.
Wider use of isTopLevel
SI-4859 Don't elide qualifiers when selecting nested modules.

Otherwise we fail to throw in:

   {???; Predef}.DummyImplicit.dummyImplicit

We still elide the initialization of `Outer` in `Outer.Inner.foo`
as before, although that seems a little dubious to me.

In total, we had to change RefChecks, Flatten, and GenICode
to effect this change. A recently fixed bug in tail call elimination
was also due to assuming that the the qualifier of a Select node
wasn't worthy of traversal.  Let's keep a close eye out for more
instances of this problem.
SI-4859 Retain MODULE_LOAD in dead code elim.

Without this, the following test fails:

    SCALAC_OPTS="-optimize" ./test/partest test/files/run/t4859.scala
Laying groundwork for a followup ticket.

To solve SI-5304, we should change `isQualifierSafeToElide`.
Merge pull request #1864 from retronym/ticket/4859-6

SI-4859 Step back from mis-optimizations in qualifiers