[squash-after-review] Rename BCodeTypes -> BTypesFromSymbols
[squash-after-review] Move stuff into BTypes without any changes
[squash-after-review] Move core definitions into CoreBTypes without changes
[squash-after-review] Move code around within BTypesFromSymbols

No changes made to the moved code. Makes it easier to review the diff.
[squash-after-review] Remove Tracked, add type information to ClassBType

Before this change, a ClassBType was just a name. The `exemplars` map
stored a Tracked instance for every ClassBType. Tracked stored
type information that is required later in the backend when things
may run concurrently. In particular: superclass, interfaces, flags
and information for emitting the InnerClass attribute. Now we put all
the information stored in Tracked directly in the ClassBType.

There is still one hash map: `classBTypeFromInternalNameMap` maps
a JVM internal class name (e.g. "scala/Predef$") to the corresponding
ClassBType. This map is used during bytecode generation, when the
ASM framework computes stack map frames.

In order to compute stack map frames, the ASM framework needs to be
able to get the LUB of two types. The default implementation uses
reflection to get type information, however that doesn't work in our
case: the classes we compile are not on the classpath. So instead,
the backend overwrites the method `getCommonSuperClass` of the
ClassWriter. This method receives two class internal names and
computes their LUB. This is done by looking up the ClassBTypes in the
`classBTypeFromInternalNameMap` and invoking `jvmWiseLUB`.

I'll add some comments directly to the diff in github, I think that is
the most helpful for reviewing.
Add the ACC_DEPRECATED flag in javaFlags, instead of each call site.