More changes to kind inference for type and class declarations
These should fix #7024 and #7022, among others. The main difficulty was that we were getting occ-name clashes between kind and type variables in TyCons, when spat into an interface file. The new scheme is to tidy TyCons during the conversoin into IfaceSyn, rather than trying to generate them pre-tidied, which was the already-unsatisfactory previous plan. There is the usual wave of refactorig as well.