GenBCode refactoring (remove Tracked) and fix InnerClass / EnclosingMethod attributes

The largest commit, "Remove Tracked, ...", was already reviewed in #3855. It is a squashed version of the commits labelled `[squash-after-review]` in that PR.

The subsequent commits address the review comments. They should be reviewed.

The commit "Fix InnerClass / EnclosingMethod attributes" is new and should be reviewed.

[`-Ybackend:GenBCode` build OK](https://scala-webapps.epfl.ch/jenkins/job/scala-checkin-manual/1330/consoleFull)
This method looks rather expensive. How often is it called?