don't consider two named types with the same root type as assignable

This bug happened due to the "Canonical" field having two different
purposes. Add another field "RootType" for the purpose of finding the
head of a NameType list. This can move to NameType later, once it's
ParenTypes are figured out.