Separate primary and inherited deferred tts

Mixing primary and inherited deferred type tags was messing things up
in explicitouter. This took a freaking day of debugging, incredible
how hard it is to track a heisenbug that crashes the compiler 3 phases
later...
Clean up type tag usage in transformer
Some changes in the classloader Miguel suggested

Thanks to @magarcia!