Fix for #317200

lrytz/asm/abc3759d2d

This commit should be in the next ASM release, so it does not need to
be cherry-picked on the next ASM upgrade.
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
refactor btypes in separate component