Merge pull request #3767 from lrytz/opt/asmUpgradeSquash

Upgrade ASM to 5.0.2
tracing cleanup, reference asm doc for typestate comment
cleanups and comments in BCode backend
Cleanups in Names.scala

Enter only fully constructed Name objects into the hash table, this
should make lookupTypeName thread-safe.

Clean up lookupTypeName - the hash code for a type name is the same
as for its correspondent term name.

going from a type name toTermName should never create a new TermName
instance. assert that.
cleanups in BCode backend
don't copy the name when invoking subName
Move class BType to separate component

This commit does not build, it just moves the class BCode,
refactorings are in a separate commit to simplify reviewing.
Rewire BType in its new location with the rest of the backend

remove now-empty BCodeGlue
add _SORT to sort constants for clarity
more cleanups and documentation
wip for JvmType
bcode refactoring wip
refactoring btype wip
new btype implementation