thisType of a module class is a term ref to the source module.

Module classes now always get the sourceModule term ref as their this type.
We would like to eliminate ThisType() of a module class completely, as this
hangs on to a symbol which might become stale for globally accessible modules.
This commit is the first step. It contains the change to thisType and the necessary
fixes to make the test suite pass.
Rebinding ThisTypes

ThisTypes do escape. It seems that Scala 2 pickling produces ThisTypes that refer to base
classes of the class being compiled. If the base class is in a separate compilation unit,
this can lead to a stale class symbol in the ThisType. We solve this here by rebinding the
class symbol in the ThisType. We should also explore the alternative:

     class ThisType(tref: TypeRef) ...

That would do the rebinding as part of the generation denotation resolution mechanism.
Make ThisTypes take TypeRefs instead of ClassSymbols

This avoids stale symbol errors and does not need the somewhat
unsystematic symbol rebinding of the last commit.