fix crash in printing TypeConstructors

the problem is that when T isa TypeConstructor (made by `typealias`),
Type{T} and Type{T.body} are type-equal, but cannot be merged into the
same object without losing information (namely that T isa TypeConstructor).
instantiations of Type{} were handling this, but the type-cache comparison
predicate was not.
Merge branch 'master' of github.com:JuliaLang/julia