Fleshed out generalizeWitnessType. generalizeType is now defined in
terms of it

Unfortunately, we now need to track depths on kind vars.