SI-7202 tighten name mangling.

When the compiler wants to make private symbol visible outside its
declaring class, it also changes the name to make it unique to avoid
accidental overriding.

The current scheme prepends fullName of the owner class, which could
still result in two renamed symbols overriding if one the symbols
is declared in local class.

To avoid such scenario, name mangling prepends not only the names of
the enclosing classes, but also '$' characters for any non-class
owner.

Since usages of the symbols with expanded names are in the compiled compilation unit only, this change is safe to put in 2.10.