TypeInfo -> Either, Polytypes contain "typeslots"

There is now no necessity for external sum types, so internal sum types
were switched to use "Either", and polytypes containing only type_refs
made very little sense for types that were not up for inferring, so
typeslots were made as a union type of type_refs and polytypes.